如何获取方法的别名?

时间:2015-02-06 09:26:35

标签: ruby methods

给定一个模块/类以及在其上定义的实例方法的名称,如何获取该方法的所有别名?

1 个答案:

答案 0 :(得分:3)

不确定迭代所有实例方法是否被视为“暴力”,但这可行:

class Foo
  def bar
  end

  alias bar2 bar
  alias_method :bar3, :bar
end

Foo.instance_methods.select do |m|
  Foo.instance_method(m) == Foo.instance_method(:bar)
end
#=> [:bar, :bar2, :bar3]