【发布时间】:2012-04-03 02:18:28
【问题描述】:
类似于__callee__,有什么东西可以返回调用方法吗?我意识到有 caller ,我会慢慢地从中删除调用者方法的名称,但我很好奇是否有一种标准方法可以返回调用方法的名称而没有任何其他信息。
【问题讨论】:
类似于__callee__,有什么东西可以返回调用方法吗?我意识到有 caller ,我会慢慢地从中删除调用者方法的名称,但我很好奇是否有一种标准方法可以返回调用方法的名称而没有任何其他信息。
【问题讨论】:
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,尽管相关票证已经有一段时间没有更新了。
【讨论】:
sender gem 看起来非常重要。