我正在尝试检查是否initialize在类中直接定义.这是一些示例命令行代码,用于说明我正在尝试执行的操作:
class Something
def initialize; end
end
Something.method_defined?(:initialize)
# => false
Run Code Online (Sandbox Code Playgroud)
有没有办法检测是否initialize在类中直接定义?
initialize 显然总是私密的,所以你需要这样做:
Something.private_instance_methods(false).include?(:initialize)
Run Code Online (Sandbox Code Playgroud)
该false论点意味着祖先不被搜查.
文档:http://ruby-doc.org/core-2.2.2/Module.html#method-i-private_instance_methods