« Leopard Tech Talks | トップページ | Ruby のメソッド引数の初期値は実行時に評価される »

2006.12.21

RubyCocoa のメソッドを irb で補完する

WIN32OLEのメソッドをirbで補完するを RubyCocoa に移植(ってまんまパクリ)してみた。

 require 'osx/cocoa'
 module OSX
   class ObjcID
     alias :_prev_osx_methods :methods
     def methods(flag = true)
       @osx_methods ||= objc_methods.map {|m| m.gsub(/([^_]):/, '\1_')}
       @osx_methods | _prev_osx_methods(flag)
     end
 
     class <<self
       alias :_prev_osx_methods :methods
       def methods(flag = true)
         @osx_methods ||= objc_methods.map {|m| m.gsub(/([^_]):/, '\1_')}
         @osx_methods | _prev_osx_methods(flag)
       end
     end
   end
 end

動かすとこんな感じ。

 % irb -r osx/cocoa
 irb(main):001:0> OSX::NSURL.URL[TAB][TAB]
 OSX::NSURL.URLFromPasteboard_
 OSX::NSURL.URLWithString_
 OSX::NSURL.URLWithString_relativeToURL_
 irb(main):001:0> OSX::NSURL.URL

require 'osx/cocoa' はそんなに軽い処理じゃないので、常用はオススメしかねる。

|

« Leopard Tech Talks | トップページ | Ruby のメソッド引数の初期値は実行時に評価される »