こんにちは.山崎です.

irbのメソッドcompletionとrefeの統合をしたいと思い.method_missingを利用し
た下記のようなプログラムを書いてみました.

## doc-extiontion.rb
class Object
  def method_missing(method_name, *arg)
    if (/(.+)_/ =~ method_name.to_s)
      real_method_name = $1
      class_name = self.class.name    
      if class_name == "Class" # if class method
        class_name = self.name
      end
      cmd ="refe #{class_name},#{real_method_name}"
      print `#{cmd}`
    else
       super(method_name, *arg)
     end  
  end
end
##

実行したirbコマンドは下記の通りです.

% irb -r 'irb/completion' -r doc-extention

これでメソッド名にアンダーバーを入れたメソッドを実行すると
refeのマニュアルが出るようになったのですが,上記実装は?付きの
メソッドがうまく取り出せません.

Rubyの文法的に?がメソッド名の途中にあるのが問題のようなのですが,
どうすればいいのか教えてもらえますか?

使っているRubyは
ruby 1.8.5 (2006-07-11) [i386-freebsd6.1]
です.

あと「こんなことわざわざしなくても,もっといい方法があるよ!」とか
あれば併せて教えてください.

よろしくお願いします.
-- 
Daisuke Yamazaki <yamajaki / gmail.com>