FiveRuns TuneUp Rails 2.0 ve üstü kullanan uygulamalarınızı analiz ediyor ve bu bilgileri isterseniz FiveRuns TuneUp sosyal ağı üzerinden paylaşıp (kaynak koda dair herhangi bir bilgi görüntülenmiyor) diğer kullanıcılarla fikir alışverişi yapıp kodlarınızı daha optimize hale getirebiliyorsunuz.
FiveRuns analiz hizmeti development ortamında çalışan uygulamınıza kuruluyor ve her istek gelen sayfayı anlık analiz ederek, hakkında bilgi sunuyor.
Yukarıda da görüldüğü gibi TuneUp sayfanın en yukarısına kendisini yerleştiriyor. Ve analize dair basit bir istatistik sunuyor. Buradan görüleceği gibi en çok yük View sistemimize aitmiş. Ve toplam sayfa oluşturumu 326 ms. sürmüş. Daha detaylı bilgi almak için fare imlecini analiz çubuğunun üzerine tutuyoruz.

Görüldüğü gibi işlem bazlı olarak ayrıntılı bir rapor alabiliyoruz. Ayrıca modellerimizin tablo yapısını da hızlıca görebiliyoruz.

Yapılan sorguları da görebiliriz;

Daha detaylı bilgi almak için TuneUp videosunu izleyebilirsiniz.
Kuruluma dair bir kaç not düşmek gerekirse;
sudo gem install fiveruns_tuneup
ile gem paketini kurduktan sonra Rails sürümüne göre çalıştırma komutunu veriyoruz;
Rails 2.1 için config/environment.rb dosyasına config.gem ‘fiveruns_tuneup’ satırını ekliyoruz.
Rails 2.0 için fiveruns_tuneup /uygulamanızın/bulunduğu/klasör komutunu çalıştırıyoruz.
Geliştirme ortamında oldukça faydalı bir araç TuneUp. Daha büyük ve kurumsal projeler için ise FiveRuns ürünlerine göz atmakta fayda var. Gerçekten güzel uygulamaları mevcut.
İyi çalışmalar.
TurkceRb << Sayı-Yazı Çeviricisi 15/10/07
TurkceRb projesinin yeni sürümünü yakında sunacağım inşallah. Gem paketini kurduktan sonra require “turkce” require “turkce_rails” diyerek kullanabileceğiz, ayrıca rails ile ruby modülleri de ayrılacak. Konu hakkında daha detaylı girdiyi gem paketini oluşturduktan sonra (süresi belli değil henüz) detaylıca yazacağım inşallah.
Yeni sürümü beklemeden “yaziya_cevir” fonksiyonunu siteden paylaşmayı uygun gördüm.

yaziya_cevir
Verilen sayıyı yazıya çeviren bir fonksiyon. Örnek olarak
=> OnBirTrilyonİkiYüzYirmiBirMilyarÜçYüzOnİkiMilyonYediYüzElliBeşBinYüzYirmiÜç
Yazının devamında kaynak kodlarını bulabilirsiniz.
Sayfaya kalıcı bağlantı adresleri için verilecek stringlerde temizlik yapmak lazım oluyor. Bunu yazmıştım “Muhtıra” için, onun çıkacağı yok en azından içindeki güzel kodları paylaşayım.
isim.downcase!
{'İ' => 'i', 'Ğ' => 'g', 'Ü' => 'u', 'Ş' => 's', 'Ç' => 'c', 'Ö' => 'o',
'ğ' => 'g', 'ü' => 'u', 'ş' => 's', 'ö' => 'o', 'ç' => 'c', 'ı' => 'i'}.each_pair { |a,b| isim.gsub!(a,b) }
isim.gsub(/([^ a-zA-Z0-9_-]+)/, '').tr(' ', '-').gsub(/--/, '-').gsub(/-$/, '')
end
irb(main):046:0> kisa_ceviri(”Permalink İçin Çeviri, String Temizleyici Falan.”)
=> “permalink-icin-ceviri-string-temizleyici-falan“
Bu kodu alıp Ruby’nin nimetlerinden faydalanalım ve şöyle yapalım.
NOT: Bu kod 18/08/2008 de güncellenmiştr. downcase! ya da diğer selfi değiştiren fonksiyonlarda değişen bir yer yoksa sonuç olarak nil döndürmektedir. bu nedenle downcase! den dönen bilgi direk str değişkenine aktarılmamıştır.
def kisa_ceviri
self.downcase!
str = self
{'İ' => 'i', 'Ğ' => 'g', 'Ü' => 'u', 'Ş' => 's', 'Ç' => 'c', 'Ö' => 'o',
'ğ' => 'g', 'ü' => 'u', 'ş' => 's', 'ö' => 'o', 'ç' => 'c', 'ı' => 'i'}.each_pair { |a,b| str.gsub!(a,b) }
str.gsub(/([^ a-zA-Z0-9_-]+)/, '').tr(' ', '-').gsub(/--/, '-').gsub(/-$/, '')
end
end
irb(main):046:0> “Permalink İçin Çeviri, String Temizleyici Falan.”.kisa_ceviri
=> “permalink-icin-ceviri-string-temizleyici-falan“
Rails ActiveRecord modülünde kaydın eklenme tarihini ve güncellenme tarihini eğer created_at|created_on ve/veya updated_at|updated_on alanlarınız var ise otomatik olarak bunlara kaydeder.
Ufak Bi’ Not:
Alanlara kaydın otomatik yapılmaması için iki yolumuz mevcut;
- ActiveRecord::Base.record_timestamps = false ile (environment.rb dosyasına ekleyerek) tüm modellerde geçerli olur.
- self.record_timestamps = false ile yazılan model için geçerli olur.
Türkçe Alan Adları
Gelelim asıl konumuza.
Artık alanlarımızı “kayit_tarihi” “guncelleme_tarihi” şeklinde oluşturarak da Rails’in bu alanlara otomatik olarak kayıt yapmasını sağlayabiliriz.
Bunun için environment.rb dosyasına aşağıdaki satırları eklemeniz gerekmektedir.
# muarifer, http://www.ikinoktayazilim.com/wordpress
module Muarifer
module EtkinKayit
module Zaman
# önceki fonk.ları değiştirelim
def self.included(base)
base.alias_method_chain :create, :tr
base.alias_method_chain :update, :tr
end
# oluşturma tarihini otomatik kaydet
def create_with_tr
if record_timestamps
t = self.class.default_timezone == :utc ? Time.now.utc : Time.now
write_attribute('kayit_tarihi', t) if respond_to?(*:kayit_tarihi) && kayit_tarihi.nil?
write_attribute('guncelleme_tarihi', t) if respond_to?(:guncelleme_tarihi)
end
create_with_timestamps
end
# güncelleme tarihini otomatik kaydet
def update_with_tr
if record_timestamps
t = self.class.default_timezone == :utc ? Time.now.utc : Time.now
write_attribute('guncelleme_tarihi', t) if respond_to?(:guncelleme_tarihi)
end
update_with_timestamps
end
end
end
end
ActiveRecord::Base.class_eval {
include Muarifer::EtkinKayit::Zaman
}
Bir Not Daha
Kodlarımızı projeye dahil ettikten sonra created_at|created_on ve updated_at|updated_on alanları da güncellenmeye devam edecektir. Bu konuda sıkıntınız olmasın.
Ruby dilinin nimetlerinden yararlanarak Rails’in tablo ilişkilendirmelerini belirtmek için Türkçe makrolar oluşturdum. has_many için bir_cok ve belongs_to için suna_bagli.
Yani artık şöyle bir ilişkilendirme yapabiliriz.
bir_cok :cevap
suna_bagli :sinav
end
Diğer ilişkilendirmeleri kendiniz oluşturabilirsiniz.
# muarifer , ikinoktayazilim.com/wordpress
module ActiveRecord::Associations::ClassMethods
alias :bir_cok :has_many
alias :suna_bagli :belongs_to
end
Nasıl Çalışıyor?
Anahtar Kelime: ruby alias







