IRB için yardımcı gem: ORI

ruby irb ori

Peepcode screencast’lerinden Play by play: Aaron Patterson’ı izlerken daldan dala atladım ve IRB ile ilgili çok işe yarar bir gem buldum: ORI

Object-Oriented RI for IRB Console (ori)

İnteraktif konsollar sayesinde, başka bir araca ihtiyaç duymadan, istediğimiz gibi yazılım denemeleri yapabiliriz. Pek çok dilde bu özellik var. (Php, Python, Ruby gibi…)

php -a
pip install ipython # eğer ipython yoksa kurmak için... sudo gerektirebilir
ipython
irb

iPython’da çok kullandığım help() özelliğini irb’de aradım fakat bulamadım. Dediğim gibi, screencast’i izlerken 6.dakikada durup daldan dala google’da zıplamaya başladım. Ve tam o sırada ORI’ye denk geldim.

help()
help("print")
help("string")

Pek çok şeyin olduğu gibi IRB’nin de .irbrc dosyası var. Genelde *nix ortamında pekçok programın konfigürasyon dosyası benzer şekillerde olur. Bu dosyaya bir-iki ekleme yaparak işlerimi kolay hale getireceğiz.

Önce ilgili gem’i kuralım. (Eğer rvm ya da rbenv kullanıyorsanız istediğiniz ruby versiyonuna geçip gem’i öyle kurun.)

gem install ori # gerekiyorsa başına sudo ekleyin...

Eğer yoksa, $HOME/.irbrc dosyasını oluşturmamız lazım.

touch $HOME/.irbrc

Daha sonra kullandığınız text-editörü ile dosyayı açın:

require 'rubygems'
require "irb/completion"
require 'irb/ext/save-history'
require 'ori'

IRB.conf[:SAVE_HISTORY] = 10000
IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.irb_history"

Son iki satırda irb'ye diyoruz ki;

  • History tut, maksimum 10000 satır olabilir.
  • Bu history dosyasının adı .irb_history olsun ve yeri de $HOME altında olsun.

Bu işlemlerden sonra; hemen irb yazıp çalıştırın ve;

"".ri                                  # String ile ilgili help
"".ri :upcase                          # String’in upcase metodu ile ilgili help
Array.ri                               # Array ile ilgili help
"".ri :pretty_print                    # String’in pretty_print metodu ile ilgili help
Hash.ri :[]                            # Birden fazla döküman bulunması durumu
String.ri //                           # Tüm metodlar
"".ri /case/                           # String metodları içinde case geçen metodlar
"".ri /^to_/                           # String metodları içinde to_ ile başlayanlar
Hash.ri //, :all => true               # Hash’in public/private tüm metodları
Hash.ri //, :all                       # Alternatifi
Time.ri //, :own => true               # Kendisine ait metodları
Time.ri //, :own                       # Alternatifi
String.ri //, :access => "::"          # Sadece Class / Instance metodları
String.ri //, :access => "#"           # Sadece Class / Instance metodları
String.ri //, :visibility => :private  # Sadece private metodları

String.ri //, :visibility => [:public, :protected]
                                       # Public ve protected metodları

String.ri //, :fullre => /\(Object\)::/
                                       # Receiver’ı Object olan String metodları

String.ri //, :fullre => /\(Object\)::/, :access => "::", :visibility => :private

Nasıl? benim çok işime yaradı. Umarım sizin de işinize yarar. Konu ile ilgili harika bir video var, örnekler vs. izlemenizi tavsiye ederim. Projenin github sayfasını da ziyaret edebilirsiniz.

Son olarak ~/.irbrc dosyasına bir ek yapalım. Önce wirble gem’ini kuralım:

gem install wirble # gerekiyorsa başına sudo ekleyin...

Daha sonra; ~/.irbrc dosyasını text-editörde açın ve en alt satıra;

Wirble.init({
  :skip_prompt => true,
})
Wirble.colorize

Artık renkli bir irb’ye sahip olacaksınız!

Update: 25 Kasım 2014, Salı, 22:23

Geçtiğimiz yıl Peepcode, Pluralsight şirketine satıldı.