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.

res1.jpg

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.

res2.jpg

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.
res3.jpg

Yapılan sorguları da görebiliriz;
res4.jpg

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 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_resim.png

yaziya_cevir

Verilen sayıyı yazıya çeviren bir fonksiyon. Örnek olarak

puts 11221312755123.yaziya_cevir
=>
OnBirTrilyonİkiYüzYirmiBirMilyarÜçYüzOnİkiMilyonYediYüzElliBeşBinYüzYirmiÜç

Yazının devamında kaynak kodlarını bulabilirsiniz.

Devamını Okumak İstiyorum

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.

def kisa_ceviri(isim)
   
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.

class String
 
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.

# Türkçe Tarihsel Alan Adlarını Otomatik Kaydettirici
# 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.

class Soru < ActiveRecord::Base
 
bir_cok :cevap
 
suna_bagli :sinav
end

Diğer ilişkilendirmeleri kendiniz oluşturabilirsiniz.

# Türkçe Tablo İlişkilendirmeleri
# 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

Sayfada yayımlanan yazılar aksi belirtmedildiği sürece Murat Arif Çeliker'e aittir. Yorumlar, yorumu yapan kullanıcıların kendi görüşleridir.
açılış - deneyhane - tasarılar - hakkımda - iletişim -

Sitede altyapı olarak Wordpress kullanılmıştır.