Ruby:如何找到模块的所有类方法

Trầ*_* Dự 0 ruby metaprogramming

例如,我有这个代码:

module ExampleModule
  def self.module_method
  end

  def normal_method
  end
end
Run Code Online (Sandbox Code Playgroud)

如果我试着打电话 ExampleModule.instance_methods,我只能看到normal_method.我也搜索过,singleton_class但看起来Ruby没有把类方法放在里面singleton class:

ExampleModule.singleton_class.each do |method|
  print method
end
Run Code Online (Sandbox Code Playgroud)

怎么看self.module_method(只有这个方法,而不是模块ExampleModule的其他父方法).

谢谢

Car*_*and 5

ExampleModule.methods(false)
  #=> [:module_method] 
ExampleModule.singleton_class.instance_methods(false)
  #=> [:module_method]
ExampleModule.instance_methods(false)
  #=> [:normal_method]
Run Code Online (Sandbox Code Playgroud)