在 ruby 中,如果我确实“需要 foo”,有没有办法随后确定 foo.rb 中定义的一个或多个模块的名称?
例如,假设我有一个名为 foo.rb 的 ruby 文件,如下所示:
# foo.rb
module MyModule
def self.summary
"this does something useful"
end
...
end
在另一个脚本中,在我执行“require foo”之后,如何确定我现在有一个名为 MyModule 的模块?
最终我追求的是能够做这样的事情:
file = someComputedFileName()
require file
puts "summary of #{file}: #{???::summary}
虽然我可以强迫自己使模块名和文件名相同,但我宁愿不这样做。我希望在制作短文件名时更加自由,但模块名称更具表现力。但是,我向自己保证每个文件只会定义一个模块(想想:插件)。