“Ruby On Rails ile web uygulamaları geliÅ?tirmek için ne kadar Ruby bilinmeli?”
Ruby On Rails, Ruby diliyle yazılmıÅ? uygulama geliÅ?tirme altyapısıdır. Ruby On Rails, Ruby dilini kullanır, her Ruby On Rails uygulaması Ruby diliyle yazılır. RoR uygulamaları geliÅ?tirmek için bilinmesi gerekli olan Ruby kurallarına, söz dizimlerine dair genel bir giriÅ? yapacaÄ?ız. RoR öÄ?renirken mutlaka “api belgeleri”ni okumalı, Ruby’nin diziler, katarlar üzerindeki iÅ?lemlerini kavramalıyız.
Yazıda RoR içinde sıkça kullandıÄ?ımız genel Ruby söz dizimlerine ait bilgilerin ilk kısmı yer alıyor.
Belgeler
Katar, Dizi, Sayısal Sınıflarının Ve Genel Ruby Api Belgelendirmeleri
Ruby-core belgelendirmelerinden üzerinde sıkça iÅ?lem yapılacak sınıfları öÄ?renmek, belgelendirmelerinin el altında bulunması uygulama geliÅ?tirirken oldukça önemlidir.
RoR belgeleri
RoR uygulaması geliÅ?tirirken en sık baÅ?vurulan belgeler Api belgeleridir. “gem_server” gem ile kurulan paketlerin RDoc belgelendirmelerini sunucuya açar, http://localhost:8808 adresinden belgelendirmelere ulaÅ?abiliriz.
Söz Dizimine Dair Genel Bilgiler
Fonksiyon Tanımlanması
Her ActionController üzerinde tanımlanan bir fonksiyon (private fonksiyonlar hariç) bir sayfa ifade etmektedir. Ã?rneÄ?in sayfa/index sayfa denetleyicisindeki “index” fonksiyonunu iÅ?ler. Bir fonksiyon Å?u Å?ekilde tanımlanır:
- def fonksiyon(arguman1, arguman2, .., argumann)
- # fonksiyon içeriÄ?i
- end
- def fonksiyon2
- # argümansız fonksiyon
- end
Fonksiyonların Ã?aÄ?rılması
Ruby dilinde fonksiyonların parametlerini parantez içerisine almadan da kullanabiliriz.
- fonksiyon(deger1, deger2, deger3...)
- # fonksiyonların parametlerini parantez içerisine almadan da kullanabiliriz.
- fonksiyon deger1, deger2, deger3
“Block” Yapılar
Ruby dili “block” yapılarına imkan tanır. Bu aslen Ruby dilinin en önemli özelliklerinden biridir. Kısacası verilen fonksiyonun içeriÄ?inde diÄ?er iÅ?lemleri yapmaya olanak tanır. Ã?rnek olarak bu tür bir fonksiyon tanımlarsak;
- # burada yield; fonksiyona gönderilen "block" içerisindeki iÅ?levlerin yapılması gerektiÄ?ini belirtir.
- def islem_yap
- puts "iÅ?lem baÅ?ladı!\n"
- yield
- puts "\niÅ?lem bitti"
- end
- # "block"lar { ile } arasına yazılabilir
- islem_yap { puts "örnek bir iÅ?lemim ben!" }
- # "block"lar do ile baÅ?layıp end ile bitebilir
- islem_yap do
- puts "ben örnek bir iÅ?lemim"
- puts "o örnek bir iÅ?lem"
- end
“Block” yapıları “each” fonksiyonunda görüyoruz. Burada “each” ayrıca bize bir eleman da döndürmektedir.
- LISTE.each do |eleman|
- # iÅ?lemler
- end
- LISTE.each { |elaman| puts "#{eleman}" }
:sembol, ‘katar’, “katar”
:ornek Å?eklinde , ruby dilinde “symbol” tanımlanabilir. Bir noktada deÄ?iÅ?mesi buna baÄ?lı tüm deÄ?iÅ?kenlerde deÄ?iÅ?mesi anlamına gelir. a ve b deÄ?iÅ?kenleri sırası ile :ornek sembolüne iÅ?aret ediyorsa (farklı modüllerde olsa dahi) :ornek sembolünün deÄ?iÅ?mesi a ve b nin de deÄ?erinin deÄ?iÅ?mesi anlamına gelir. Zira bunların “id” deÄ?erleri aynıdır. (Aynı sembole iÅ?aret ettikleri için)
‘katar’ Å?eklinde katar tanımlanabilir, fakat ‘ ile ‘ arasında özel karakterler iÅ?lemez.
” ile ” arasında özel karakterler çalıÅ?abilir.
‘örnek\n’ ekrana örnek\n yazdırırken “örnek\n” ekrana örnek yazdırır ve imleci bir alt satıra indirir.
Bir katar içinde deÄ?iÅ?keni yazmak için #{degisken} kullanabiliyoruz.
- a = 8*40
- puts "8 ile 40 ı çarparsak #{a.to_s} eder!"
Kontrol Mekanizmaları
if, elsif, else, end
Ruby de kontrol mekanizmaları oldukça kolaydır. örnek bir tanımlama Å?u Å?ekildedir.
- def merhaba(isim)
- # örnek bir kontrol mekanizması
- puts "\nDeger: #{isim}"
- if isim == 'murat'
- puts "OOoo, Merhaba AdaÅ?!"
- elsif isim == 'dünya'
- puts "İlk program hayırlı olsun :)\nMerhaba Dünya"
- else
- puts "Merhaba #{isim}"
- end
- end
- merhaba('murat')
- merhaba('dünya')
- merhaba('ruby')
- # if => eÄ?er verilen koÅ?ul doÄ?ru ise
- # elsif => önceki koÅ?ullar yanlıÅ? ise ve verilen koÅ?ul doÄ?ru ise
- # else => verilen koÅ?ulların hepsi yanlıÅ? ise
Ayrıca “unless” if kontrolünün tersidir.
- if a
- # ise
- else
- # deÄ?ilse
- end
- unless a
- # deÄ?ilse
- else
- # ise
- end
Tek iÅ?lemlik tek bir if kontrolü yapılabilir.
- def merhaba(isim)
- # tek iÅ?lemlik kontrol
- puts "ooo, hayırlı olsun ilk program" if isim == 'dünya'
- puts "merhaba #{isim}"
- puts "-"*40
- end
- merhaba('dünya')
- merhaba('canım.')
Biterken
Ruby On Rails ile uygulama geliÅ?tirmek için genel Ruby söz dizimleri mutlaka bilinmelidir. Bunun dıÅ?ında RoR Api belgelendirmeleri mutlaka elinizin altında bulunmalıdır. Zira, RoR belirli fonksiyonlardan oluÅ?ur ve bir yazılımda ihtiyaç duyulan hemen hemen tüm kütüphaneler ve iÅ?levler RoR ile hali hazırda sunulmaktadır.






