HELLO, I’M SERHAT AND THIS IS MY FANCY TITLE.

Ruby ile iki veri arasındaki benzerliğin hesaplanması


Bir RoR projesinde, iki farklı veritabanında bulunan ad-soyad ve kimlik numarası verilerinin birbirlerine ne kadar benzediğinin hesaplanması ve farklı veri setlerinin birbiriyle aynı olma olasılığının tespiti gibi bir ihtiyacım olmuştu.

Örneğin aşağıdaki iki veri birbirine ne kadar benziyor, bu kişiler gerçekten aynı kişiler olabilir mi bunu hesaplamam gerekiyordu:

"Ahmet Metin 123456789"
"Ahmet Makin 123123123"

Bu hesaplamayı yapabilmek için Elasticsearch ve Ruby'nin marifetleri yeterli oldu. Elasticsearch'ün Ruby için sağladığı records.each_with_hit metodu ile herhangi iki veri birbirlerine ne kadar benziyor (yakınsıyor) kontrol edebilir ve benzerlik oranını 0-2 aralığında matematiksel olarak alabilirsiniz.

Continue reading
Date: | Tags: ruby programlama, ruby dersleri, ruby örnekleri, ruby kodları | Categories: tech, ruby

Ruby on rails ve güvenlik - routes


Rails uygulamalarında route'ların güvenliğini sağlarken Devise gibi authentication GEM'lerinin sağladığı helper'lardan ve lambda metodundan yararlanabilirsiniz. Örneğin sadece super_admin rolüne sahip kullanıcılara açık olmasını istediğiniz route'ları şu şekilde tanımlayabilirsiniz:

# config/routes.rb

authenticate :user, lambda { |u| u.is_super_admin? } do
  mount Resque::Server => '/admin/resque'
  namespace :admin do
    resources :ip_lists, except: :show
    resources :token_users, except: :show
  end
end

Artık admin/resque, admin/ip_lists ve admin/token_users yolları sadece super_admin'ler için erişilebilir olacak.

Continue reading