« [Ruby] RiCal | トップページ | [Ruby] MagickWand »

2009年8月19日 (水)

[Ruby] desc_method

最初のバージョンが公開されました(ruby-talk:344118)。

irb や デバッガの実行中から ri の実行結果の情報を表示してくれる便利なライブラリ。

都合により、ruby 1.9.1 で試してみました。

インストールには、ruby2ruby 1.1.9 が必要です。 ruby2ruby は、1.2.4 がリリースされていますが、 desc_method は、ruby2ruby 1.1.9 がインストールされていないとインストールできません。

$ sudo gem install ruby2ruby -v 1.1.9
$ sudo gem install rogerdpack-desc_method --source http://gems.github.com

irb から試してみました。

$ irb 
irb(main):001:0> require 'desc_method'
irb(main):002:0> String.desc_method :size
#<UnboundMethod: String#size>      arity: 0
ri for String#size
------------------------------------------------------------ String#size
     str.length   => integer
     str.size     => integer
 
     From Ruby 1.9.1
------------------------------------------------------------------------
Returns the character length of _str_.
 
(end ri)
appears to be a c method
irb(main):003:0> require 'date'
irb(main):004:0> Date.desc_method :parse
#<Method: Date.parse>      arity: -1
ri for Date.parse
------------------------------------------------------------ Date::parse
     Date::parse(str='-4712-01-01', comp=true, sg=ITALY)
 
     From Ruby 1.9.1
------------------------------------------------------------------------
     Create a new Date object by parsing from a String, without
     specifying the format.
...(中略)
(end ri)
...(中略)
at /usr/local/ruby191/lib/ruby/1.9.1/date.rb:1064
  def self.parse(str='-4712-01-01', comp=true, sg=ITALY)
     elem = _parse(str, comp)
     new_by_frags(elem, sg)
  end
  => #<Method: Date.parse>

require 'desc_method' で desc_method というのが追加されて、irb の中から

String.desc_method :size

と実行すれば、ri String#size を実行したのと同じ結果が得られたり、 Ruby で書かれたライブラリの場合は、指定したメソッドが定義されているファイルとメソッドの中身を表示してくれます。 これはなかなか便利そう。

|

« [Ruby] RiCal | トップページ | [Ruby] MagickWand »

コメント

この記事へのコメントは終了しました。