.irbrcでrefe(もしくはri)

http://mono.kmc.gr.jp/~yhara/d/?date=20070801#p01より、
現在使っているのは、

  • タブ補完
  • リファレンス検索

リファレンス検索の部分はちょっと変更を加えてます。

gemでインストールしたものなどはrefeに乗ってないことがあります。そのような時はriを使って調べます。なので同様の方法でriもつかいたいなーと思いました。なので、こんな感じに修正します。

module Kernel
  def f(name, arg)
    puts `#{name} #{arg}`
  end
  def r(arg); f("refe", arg); end
  def ri(arg); f("ri", arg); end
  private :r, :ri, :f
end

class Module
  def f(name, meth)
    if meth
      if instance_methods(false).include? meth.to_s
        puts `#{name} #{self}##{meth}`
      else
        super
      end
    else
      puts `#{name} #{self}`
    end
  end
  def r(arg=nil); f("refe", arg); end
  def ri(arg=nil); f("ri", arg); end
end

これで、以下のことができるようになりました。

Enumerable.r :map  #refeで検索
Enumerable.ri :map #riで検索