Şubat 7, 2008 at 16:36 -
Yazar: davit
Rails
Ruby on Rails "Render" web sayfalarınız, istediğiniz yere çağırıp, kullanıma uygun hale getirmeye yarayan, güçlü bir method' dur. İşte size birkaç güzel render şekli:
1) Render action: çalıştığınız controller içerisinden bir action render edin. Bu render işleminde bir RHTML şablonu kullanılsınmı kullanılmasın mı :layout parametresiyle belirtebilirsiniz
RUBY:
render :action => "show_home_page", :layout=> false
2) Render partial: Gösterilmesini veya derlenmesini istediğiniz RHTML şablonunu çağırabilirsiniz.
RUBY:
render :partial => "footer" # Aynı controller view klasöründe _footer.rhtml dosyasını çağıracak
3) Render template:
RUBY:
render :template=> "templates" # action unuz için başka bir RHTML dosyasını işleyecek
4) Render file: İşlenmesini istediğiniz dosyaının tam yolunu belirtmelisiniz
RUBY:
render :file => "#{RAILS_ROOT}/public/file.html"
5) Render text: Sayfanıza yada sayfanızın bir bölümüne yazı işlemek, yazı çıktısı almak için
RUBY:
render :text => "Merhaba Ortam" # Sayfanıza yada çağırdığınız bölüme sadece Merhaba Ortam yazacak
İngilizce Kaynak: http://www.rubyonrailsexamples.com/rails-tips/rails-render/
Şubat 7, 2008 at 11:59 -
Yazar: davit
Rails, Ruby
...
Şimdi öncelikle biraz konu ile ilgili kendimizi motive edelim; Neden dizi işlemleri bu kadar önemli ? Ya da diğer işlerden farkı ne olabilir ki ?
Öncelikle bir konuya açıklık getirmek gerekir, günümüzde yazılan programlar içerisinde pek çok durumda dinamik veya durağan veri kümeleri ile işlemler yapılıyor. Bu işlemler, yazdığımız programlar içerisinde performansı etkileyen en önemli etken olarak karşımıza çıkıyor. Ve günümüzdeki daha fazla veri üzerinden daha doğru bilgi edinme anlayışı nedeni ile dizilerin boyutları gün geçtikce artıyor ve üzerlerinde yapılan işlemler gün geçtik fazlalaşıyor, bu performans etkeni daha da önemli hale geliyor. Yanlış anlaşılma olmasın, burada bahsettiğim performans Şişirme Veri Girişi adlı yazıda bahsettiğim veri yoğunluğunun artması ile beraber ortaya çıkan performans kötüleşmesi.
Diziler üzerinde yapılacak işlemlerde öncelikle iki ana başlıkta değerlendirilmelidir;
- Kolay kullanım,
- En iyi algoritmanın kullanılması.
İkinci maddenin neden gerekli olduğu konusunda fazla söze gerek yok ama, birinci maddenin neden gerekli olduğu konusunda aklınızda sorular olabilir, bu soruları ortadan kaldırmak için şu şekilde bir açıklama yapabilirim. "Diziler üzerinde yaptığınız optimizasyonlar, algoritma seçimleri veya memory optimizasyonları" gerçekten zor ve uygulanması oldukça tartışmalı olabilir. Örneğin google'ın java dili için çıkardığı "Google Collections Library" buna örnek olarak gösterilebilir. Kolay kullanım ve entegrasyon yazılımcılar tarafından her zaman tercih edilir.
Peki Ruby tüm bunların karşısında bize güzel silahlar veriyor. Aslında tüm Ruby işlemlerinde olduğu gibi performans basitliğin gerisinde kalmış, yüzlerce kez söylediğim gibi "yazılımın çalışma hızı sonsuza giderken, geliştirme süresi sıfıra gitmeli" felsefesine ters değil.
RUBY:
data =
[1,
2,
4,
8,
12,
5,
7,
3,
0,
13,
10,
11,
3]
# For..In
data.each { |x| puts "x=#{x}" }
# data içerisindeki tüm elemanları tek tek verilen
# blok içerisindeki işlemden geçirir ve sonuçlardan yeni bir dizi üretir.
puts data.collect { |x| x + x }
# For..In ile indexleri verir.. pek çok programlama dilinde
# karşılığı bulunmaz.
data.each_with_index { |x, index| puts "#{index}. eleman = #{x}" }
# 5'den büyük ilk kayıdı bulur.
puts data.detect { |x| x> 5 }
# 5'den küçük olanları true_data değişkenine,
# diğerlerini false_data değişkenine dizi olarak atar.
true_data, false_data = data.partition { |x| x <5 }
puts true_data
puts false_data
# 5'den küçük olanları diziden çıkartır ve geri döner.
puts data.reject { |x| x <5 }
# Varsayılan sıralama işlemi
puts data.sort
# Belirlenmiş kritere göre sıralama işlemi (string olarak sıralama)
puts data.sort_by { |x| x.to_s }
# veya
puts data.sort_by { |x| (x+5)/x }
Kolay gelsin..
Yazar: Tankut Şentürk
Kaynak: http://esiyo.net/diziler-uzmanlar-icin/120
Şubat 6, 2008 at 16:10 -
Yazar: davit
Rails, Ruby
...
Öncelikle bu yazıdaki konumuzu belirteyim; Ruby programlama dilinde değişkenlerin nasıl tanımlandığı ve değişkenler üzerinde tip dönüşümlerinin nasıl olduğu.
Ruby'de değişkenler tanımlanırken herhangi bir şekilde tip belirtmenize gerek yoktur. İsterseniz Java veya C#'da yaptığınız gibi yapabilirsiniz ama o zaman biraz ayıp olur.. yuhananırsınız.. ohaa artık diyenler olabilir. Şöyledir yani;
RUBY:
intValue = 5
strValue = 'Hobaaa'
arrValue = []
hashValue = {}
regValue = \.*\
classValue = MyClass.new
Öncelikle programlama dillerinde değişken tiplerinin dönüşümü ve bu tiplerin ele alınmasını iki soru altında toplanabiliriz; Bu sorular
1. Tipler arasındaki dönüşüm nasıl gerçekleşir?
2. Değişken üzerinde işlem yaparken tip önemlimidir?
Öncelikle 1. soruyu ele alalım; "1. Tipler arasındaki dönüşüm nasıl gerçekleşir?"
El cevap: Eğer değişkeninizi bir tipten öteki tipe hödöö hödöö diye gönderiyorsanız, kullandığınız dil dinamik tip dönüşümüne sahiptir demektir. Eğer hödö hödöö diye değil de, daha efendi bir şekilde (örnek: 'String.valueOf(55)') yapıyorsanız durağan tip dönüşümüne sahipsiniz demektir. Değişkenlerinizi bir tipten öteki tipe değiştiremiyorsanız, ohaaa sizin o kullandığınız şey programa dili değil çin işkencesi demektir.
Programlama dillerine göre dinamik ve durağan tip dönüşümüne sahip olan diller;
Dinamik: Ruby, Python..vb.
Durağan: Java(yyyy), C#....vb.
İkinci soruyu ele alırsak; "2. Değişken üzerinde işlem yaparken tip önemlimidir?"
El cevap: Eğer siz bir karakter ile sayiyi toplamak isterseniz veya benim bir değerim var ama inan ben bile bilmiyorum ne olduğunu öyle yanar dönerli birşey işte.. (Basic'den Variant, C'den void) diyebiliyor iseniz, sizin için değişkenin tipi pekde önemli değildir. Yani değişkenler ile değişken tipleri arasındaki bağlantı 'zayıf'tır. Her değişkenin veya her işlemin tipi olmasına gerek yoktur, diyebilirsiniz. Ama dersenizki 'hadeee canım, tipsiz tipsiz değişkenmi olur, tipli adamın tipsiz değişkeni olmaz' derseniz, tüm değişkenleriniz ile değişken tipleri arasında 'güçlü' bir bağlantınız var demektir.
Güçlü: Ruby, Java(yyyy), C#, C++...vb.
Zayıf: C, Basic, Java(yyy)Script....vb.
Peki Ruby'de bunlar nasıl oluyor da oluryor diyeceksiniz şimdi; İşte böyle oluyor..;
RUBY:
intValue = 5
puts 5 + intValue # problem yok.
puts "5" + intValue # büüürrrstt nereye biraderr..
puts "5" * "5" # bürrsttt yok daha neler..
# bir string(a) ile numarayı(b) çarptığınızda, ruby sizin a'yi b kez tekrarlamak istediğinizi zanneder.
puts "5" * intValue # Olur, bunun ruby'de karşılığı vardır.
Kolay gelsin..!
Yazar: Tankut ŞENTÜRK
Kaynak: http://esiyo.net/ruby-degisken-ozellikleri/108