调用模块的所有方法

时间:2014-12-04 14:33:24

标签: ruby methods module call

我有这个模块

module Example
  def self.test
    p "test"
  end

  def self.test2
    p "test2"
  end

  def self.test3
    p "test3"
  end
end

现在我有一个方法,应该调用模块中的所有方法

def call_module_methods
  #call all example methods
end

所以它会打电话:

Example.test
Example.test2
Example.test3

,输出为:

"test"
"test2"
"test3"

有可能吗?

1 个答案:

答案 0 :(得分:2)

是的,it's possible

def call_module_methods
  Example.methods(false).each do |m|
    Example.send m
  end
end

诀窍是你需要调用methods(false)才能获得直接在模块上定义的方法。