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.. :)

Ruby’nin Çalışma Zamanı” üzerine 3 yorum

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir