如何获取Ruby中子类中定义的方法列表?

时间:2013-11-28 00:36:45

标签: ruby metaprogramming

假设我有一些像这样的红宝石代码:

class ParentClass
   def method1
     # some code
   end
end

class MyAwesomeSubclass < ParentClass
  def method1
    # some code
  end

  def method2
    # more code
  end
end

有没有办法获得子类定义的方法列表,所以在这个例子中是[:method1, :method2]?我的第一个冲动是说MyAwesomeSubclass.methods - ParentClass.methods,但这会删除:method1,因为在父类上也定义了method1。我需要一个由子类定义的所有方法的列表。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

试试MyAwesomeSubclass.instance_methods(false)?我相信这就是你要找的......