当您将模块包含在类或其他模块中时,您可以调用
- @mymod.included_modules
获取包含的模块列表.
是否有等同的列出模块扩展的模块?
- module Feature1
- end
- module Feature2
- extend Feature1
- end
- Feature2.extended_modules #=> [Feature1]
解决方法
他们在那里,你只需要看正确的地方:
- (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]