我有这个模块
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"
有可能吗?
答案 0 :(得分:2)
是的,it's possible:
def call_module_methods
Example.methods(false).each do |m|
Example.send m
end
end
诀窍是你需要调用methods(false)
才能获得直接在模块上定义的方法。