Ruby:获取扩展模块列表?

前端之家收集整理的这篇文章主要介绍了Ruby:获取扩展模块列表?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当您将模块包含在类或其他模块中时,您可以调用
  1. @mymod.included_modules

获取包含的模块列表.

是否有等同的列出模块扩展的模块?

  1. module Feature1
  2. end
  3.  
  4. module Feature2
  5. extend Feature1
  6. end
  7.  
  8. Feature2.extended_modules #=> [Feature1]

解决方法

他们在那里,你只需要看正确的地方:
  1. (class << Feature2; self end).included_modules # [Feature1,Kernel]

我们可以这样推广:

  1. class Module
  2. # Return any modules we +extend+
  3. def extended_modules
  4. (class << self; self end).included_modules
  5. end
  6. end
  7.  
  8. # Now get those extended modules peculiar to Feature2
  9. Feature2.extended_modules - Module.extended_modules # [Feature1]

猜你在找的Ruby相关文章