当您在课程或其他模块中包含模块时,您可以调用
@mymod.included_modules
获取包含的模块列表。
是否有等效的列表模块扩展的模块?
module Feature1
end
module Feature2
extend Feature1
end
Feature2.extended_modules #=> [Feature1]
答案 0 :(得分:23)
Feature2.singleton_class.included_modules # => [Feature1, ...]
答案 1 :(得分:19)
他们在那里,你只需要在正确的地方寻找:
(class << Feature2; self end).included_modules # [Feature1, Kernel]
我们可以这样概括:
class Module
# Return any modules we +extend+
def extended_modules
(class << self; self end).included_modules
end
end
# Now get those extended modules peculiar to Feature2
Feature2.extended_modules - Module.extended_modules # [Feature1]
答案 2 :(得分:2)
所有Ruby模块都可以从 CLI(命令行)列出,其本身如下:
ruby -e 'puts Gem::Specification.all().map{|g| [g.name, g.version.to_s] }'
OR
ruby -rubygems -e 'puts Gem::Specification.all().map{|g| [g.name, g.version.to_s] }'
希望这在某种程度上有所帮助!!!