当您在类或其他模块中包含模块时,您可以调用它们
@mymod.included_modules
Run Code Online (Sandbox Code Playgroud)
获取包含的模块列表.
有没有相应的列出模块扩展的模块?
module Feature1
end
module Feature2
extend Feature1
end
Feature2.extended_modules #=> [Feature1]
Run Code Online (Sandbox Code Playgroud)
Dam*_*ien 25
Feature2.singleton_class.included_modules # => [Feature1, ...]
Run Code Online (Sandbox Code Playgroud)
pil*_*row 19
他们在那里,你只需要在正确的地方寻找:
(class << Feature2; self end).included_modules # [Feature1, Kernel]
Run Code Online (Sandbox Code Playgroud)
我们可以这样概括:
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]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5828 次 |
| 最近记录: |