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

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

Ruby günlüğü - gün 11


Ruby'de if, elsif, else, unless gibi pek çok kontrol yapısı bulunmaktadır. Bu yazıda kontrol yapılarına ilişkin bazı örnekler gösterceğim.

Ruby'de if ve unless koşulu

Tek satır için basit bir örnek:

yas = 23
puts "Yasiniz yeni yasalara gore alkol almak icin cok kucuk" if yas < 24

Multiple satır için basit bir örnek :

yas = 23
if yas < 23
  puts "Yasiniz yeni yasalara gore alkol almak icin cok kucuk"
end
Continue reading

Ruby günlüğü - gün 10


Ruby'de sözlükler (hash) oldukça geniş alanlarda kullanılabilirler. Bunu Python'da tecrübe etmiştim. Dizilerden bazı anlarda daha maharetli olacaklardır. Dizileri en basit anlamıyla, nesneler grubu olarak tanımlayabiliriz, sözlükler için de aslında bu tanım yanlış olmayacaktır. Diziler, nesnelerin tanımlanmış bir sırada ve biçimde toplu halde bulunmasıdır, hash yani sözlüklerde ise durum biraz daha farklı. Sözlükler dizilerden farklı olarak anahtar-değer mantığı ile çalışır.

sozluk = {'isim' => 'Mustafa Serhat', 'nick' => 'msdundar'}

Burada 2 adet sözlük öğemiz var. Bir tanesi isim diğeri ise nick. Bu öğeler (yani anahtarlar - key), karşılarında ki değere (value) sahip.

Continue reading

Ruby günlüğü - gün 9


Ruby'de basit bir dizi şöyle tanımlanır;

dizi = [1,2,3,4,5,6]

Dizinin elemanlarını, dizide ki yerine göre ekrana yazdırırız;

puts dizi[3]
> 4

Sonuç 4 olacaktır. Çünkü bir çok programlama dilinde karşılaşmış olacağınız üzere, programlama dillerinde sayım işlemine 0'dan başlanır.

Continue reading

Ruby günlüğü - gün 8


Regular Expressions konusu aslında oldukça detaylı bir konu, ama dilden dile çok fazla fark göstermiyor, örneğin PHP'de ilk iki karakteri kastetmek istediğimizde %.2a (a burada temsili ifade) kullanıyoruz. Ruby'de ise, ^.. kullanıyoruz. Ruby düzenli ifadeler kullanımı konusunda Perl'e çok benziyor ve NFA eşleştirmesini kullanıyor.

Bu düzenli ifadeler nerede işimize yarar, açıkcası bende bir proje üzerinde çalışırken önemini anlamıştım. Bir kullanıcı adı ve şifre girişi düşünün, kullanıcı adı olarak öğrenci numarası kullanılacak ve okulumun öğrenci numaraları 8 haneli. İlk 2 hane okula giriş yılını temsil ediyor, kullanıcı adında bunu kontrol ettirip, öğrenci olmayanların girmesine bir ölçüde engel olmalıyız.

Continue reading