異なる名前で呼ぶとそれに応じた処理を行うRubyメソッド

http://www.yohasebe.com/diary/diary_search.php?id=142
http://www.ruby-lang.org/ja/man/?cmd=view;name=FAQ%3A%3A%A5%E1%A5%BD%A5%C3%A5%C9#a5.2e15.20.ba.a3.bc.c2.b9.d4.c3.e6.a4.ce.a5.e1.a5.bd.a5.c3.a5.c9.a4.ce.cc.be.c1.b0.a4.f2.c3.ce.a4.ea.a4.bf.a4.a4.a4.ce.a4.c7.a4.b9.a4.ac

ふーむ。なるほど。今実行中のメソッドの名前を取得するメソッドを定義してやって、

class Object
  def current_method
    caller.first.scan(/`(.*)'/).to_s
  end
end

current_methodを使って動作を変えるなメソッドを定義してやり、

def hello
  # メソッド名前に応じて処理を変える
end

aliasする。

alias hello_world   hello
alias hello_boys    hello
alias hello_girls   hello

そっか、メソッド名にもaliasがあったんだ。しかし、current_method中のバッククォート/シングルクォートは、何をしているんだろう? 正規表現のリファレンスには、特に何の記述もないなぁ。

http://www.ruby-lang.org/ja/man/?cmd=view;name=%C0%B5%B5%AC%C9%BD%B8%BD

いや、current_methodがruby本体に組み込まれれば、話は早いんだけれど ^^;