Irb/TipsAndTricks
http://www.rubygarden.org/ruby?Irb/TipsAndTricks
Ruby使いなら誰もが愛用している(と思われる)irbのtipsなどが書かれているrubygardenの1ページなんですが、ここのriを使ってリファレンス引く方法が超便利!refeに変えたら鼻血が出るほど便利だったので紹介。refeとは、
クラス名とメソッド名から Ruby のリファレンスマニュアルのエントリを引く、コマンドライン用のツールです。読みは「りふぇ」。 ri をパクって日本語・RD に対応させたものです。
http://i.loveruby.net/ja/prog/refe.html
という青木さん作のツールで、最近はgem化もされてるのでgem install refeでも一発インストールができます。で、先ほどのサイトで書かれてるriの箇所をちょっと変更して、~/.irbrcに
module Kernel def r(arg) puts `refe #{arg}` end private :r end class Module def r(meth = nil) if meth if instance_methods(false).include? meth.to_s puts `refe #{self}##{meth}` else super end else puts `refe #{self}` end end end
などと書いておくと
>> Array.r :inspect Array < Object#inspect --- inspect オブジェクトを人間が読める形式に変換した文字列を返します。 組み込み関数 p は、このメソッドの結果を使用して オブジェクトを表示します。 => nil >> String.r :each String#each --- each([rs]) {|line| ... } --- each_line([rs]) {|line| ... } 文字列中の各行に対して繰り返します。行の区切りは rs に指定 した文字列で、そのデフォルトは変数 $/ の値です。 各 line には区切りの文字列も含みます。 rs に nil を指定すると行区切りなしとみなします。 空文字列 "" を指定すると連続する改行を行の区切りとみなします (パラグラフモード)。 self を返します。 => nil
とirbから引けて便利!また、~/.irbrcで
require 'irb/completion'
して補完を有効にしておくとsymbolでメソッド名が補完できるため
Array.r :del[tab] #=> Array.r :delete と補完される