27 Oct 2015

Bugün sizlere öğrenince ufkunuzu iki katına çıkaracak birkaç minik ipucu göstereceğim.

Arama

Daha önce yazdığınız bir komutu yukarı, aşağı tuşları ile history’den getirmek yerine CTRL + R tuş kombinasyonu sayesinde bash history’de arar gibi rails console’da da arama yapabilirsiniz.

Yeniden Yükle

reload! ile uygulamayı tekrar yükleyebiliriz.

> reload!
Reloading...
true

Son işlem

_ ile son işlenen komutun değerine erişebilirsiniz.

> 1 + 2 * 4
# 9
> _ + 123
# 132

Daha İyi Oku

to_yaml ile aynı işe yarayan y‘yi kullanabilirsiniz.

object.to_yaml
y object

View Helperlarını Kullan

ActionView::Base objesi olan helper ile view helper methodlarını kullanabiliriz. Aslında helper, ActionView::Base class’ının ilklenmiş hali. Burada kafalar yandı anlatamadım göstereyim.

helper
foo = ActionView::Base.new # Aynı bok

Birkaç örnekte göstereyim.

helper.link_to "Home", app.root_path
# "<a href=\"/\">Home</a>"

helper.pluralize(3, 'mouse')
#"3 mice"

helper.time_ago_in_words 3.days.ago
"3 days"

?!(başlık bulamadım :D)

ActionDispatch::Integration::Session objesi olan app sayesinde ise uygulama içinde sahte request yapabilir, route helperlarına erişebilirsiniz.

> app.root_path
# "/"
> app.get "/"
# 200
> app.response.body
# "<!DOCTYPE html><html>Home!</html>"
> app.response.success?
# true

Kaynak Kodu

source_location methodun tanımlı olduğu dosyanın ismini ve tanımlandığı satırı veriyor.

 > location = User.instance_method(:update).source_location
[
  [0] "/Users/askingedik/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.0/lib/active_record/persistence.rb",
  [1] 245
]

> User.method(:update).source_location
[
    [0] "/Users/askingedik/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.0/lib/active_record/querying.rb",
    [1] 8
]

# Şöyle de sublime editorde açtıralım dosyayı of of of
> `subl #{location[0]}:#{location[1]}`

Çok iyi lan!

Aslında bugün bu konuyu yazmayacaktım, farklı bir konu yazacaktım ama uykum var. Yarına artık. (Meraklandırma işlemi tamamlandı…)

Kaynaklar

Aşkın Gedik
Ruby on Rails Developer

Ben Aşkın, Protel Teknoloji Çözümlerinde yazılım geliştirme takım lideri olarak çalışıyorum.

Benimle ilgili daha fazla bilgiyi hakkımda sayfasına göz atarak veya Twitter, Facebook, Github ve Gplus üzerinden takip ederek öğrenebilirsiniz.