きりかノート 3冊め

おあそびプログラミング

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' はそんなに軽い処理じゃないので、常用はオススメしかねる。