2012-03-18 10 views
4

__callee__と同様に、呼び出し元のメソッドを返すものがありますか? callerがありますが、呼び出し元メソッドの名前を取り除くことは可能ですが、興味のあることは、呼び出すメソッドの名前を他の情報なしで返すための標準的なメソッドがあることです。呼び出し方法Ruby1.9

答えて

2

MRIにこのような特徴はありません。しかし、いくつかの選択肢があります。あなたがRubiniusのを使用するために起こる場合

、あなたが代わりにcallerを解析するこれを行うことができます:

Rubinius::VM.backtrace(1, false).first.name 
#=> :calling_method_name 

をすることもできますuse a gem to parseあなたのためのcallerの結果。これはRuby> 1.9で動作するはずです。

The answer to this SO questionは、簡単な構文解析方法を説明しています。

最後に、関連するチケットはしばらく更新されていませんが、最後に、このような機能をRuby 2.0に追加するにはwork in progressが表示されます。

+0

あなたがリンクする「送信者」宝石は非常に重要に見えます。 – sawa

関連する問題