如何在模块中获取调用别名方法的名称?

时间:2017-06-16 07:27:02

标签: ruby

我有一个Ruby方法,它有几个替代名称的别名,在方法中,我想知道哪个别名叫我。

This posting建议我可以使用__callee__来获取此信息。但是,这在我的情况下不起作用,因为我在模块中,方法是模块方法。以下示例演示了此问题:

module Demo
  extend self
  def f
    puts __callee__
  end
  alias g f
  alias_method :h,:f
end

Demo.f
Demo.g
Demo.h

此输出

f
f
f

而不是

f
g
h

有人可以解释,为什么它不起作用,以及我如何正确地做到这一点?

更新:根据我在这里以及其他开发人员提供的反馈,这似乎是Ruby中的一个错误,已在2.3.4中修复。

0 个答案:

没有答案