2012-03-18 28 views
4

__callee__類似,是否有返回調用方法的東西?我意識到有caller,我可以從中剝離調用方法的名稱,但我很好奇,是否有標準方法返回調用方法的名稱而沒有任何其他信息。調用方法Ruby1.9

回答

2

MRI中沒有這樣的功能。但有一些替代方案。

在你碰巧使用Rubinius的情況下,你可以這樣做的,而不是分析caller

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

您還可以use a gem to parsecaller爲你的結果。它應該適用於任何Ruby> 1.9。

The answer to this SO question介紹瞭如何自己做一些簡單的解析。

最後,似乎有work in progress在Ruby 2.0中獲得這樣的功能,儘管相關的故障單尚未更新一段時間。

+0

您鏈接的'sender' gem看起來非常重要。 – sawa 2012-03-18 23:43:38