Ruby’nin Çalışma Zamanı

Merhabalar,

Bugünkü konumuz biraz daha ruby on rails’e yaklaşmak, ruby’nin dosyalar, çalışma ve tasarım zamanları ile ilgili bir kaç bilgi vermek olacak.

Öncelikle bir konudan bahsetmek istiyorum, diğer birçok dilde çalışma zamanı ile tasarım zamanı birbirinden farklı ve ayrı kavramlardır. Örneğin C#’da programınızın derlenmesi ve çalışması ayrı zamanlarda gerçekleşir. Fakat Ruby’de bu kavram arasında herhangi bir fark yoktur. Ruby’de tasarım da, çalışma da aynı temellere dayanır, ikisi arasında hiçbir fark yoktur. Evet çok sert bir kavram ama sanırım bir Örnek yaptıktan sonra daha rahat anlaşılacaktır.

Bir Önceki yazımızda LogClass isimli bir sınıf yapmıştık, hani şu LogHelper adlı modülün include edildiği, bu sınıfın bilgilerini LogClass.rb dosyası olarak kaydetmiş olduğumuzu varsarak Örneğimize geçelim.
[ruby]
# Standart input & output islemleri aninda gerçekleştirilmesini sağlar.
$stdout.sync = true

# Hangi sınıfı kullanacagimizi belirtiyoruz. Bu durumda ‘LogClass’ olmali.
className = “LogClass”

# Sonsuz dÖngüye girmemesi için bir Önlem, retry işlemini sadece bir kez yapması için.
fileLoaded = false
begin
tempObj = eval(className).new
tempObj.ownMethod
tempObj.error

puts tempObj.operationList
rescue Exception => err
unless fileLoaded
printf “%s sınıfı tanımlı değil.. İlgili dosya çağrılıyor\n”, className
# load islemi, dosyayı memory’e alir. Programcının kullanımına izin verir.
load className + “.rb”
fileLoaded = true
retry
else
puts “İşlem gerçekleşmedi..” + err
end
else
puts “İşlem gerçekleşti…”
end[/ruby]
Kodu çalıştırıldığında şu çıktıyı üretir;
LogClass sinifi tanimli degil.. Ilgili dosya cagriliyor
Default Logger #LogClass:0x2ae65d0.OwnMethod
Default Logger #LogClass:0x2ae65d0.error
OwnMethod
error
Islem gerceklesti…

Bu konuyu anlamakta zorlanabilirsiniz, bu nedenle daha Önceki yazılarımdan şunu ve şunu okumanızı tavsiye ederim.

Şimdi Ruby on Rails’de yazdığınız kodların nasıl oluyorda düzdün ve sorunsuz çalıştığını daha iyi anlamaya başladık. :)

Kolay gelsin.. :)

Share