2010-05-04 41 views

回答

6

'孩子'你似乎意味着模塊嵌套在給定的模塊下,對吧?與繼承關係無關?

假設你僅僅意味着嵌套模塊,下面應該工作:

class Module 
    def children 
     constants.collect { |c| const_get(c) }. 
      select { |m| m.instance_of?(Module) } 
    end 
end 

編輯:您可能需要使用constants(false)進一步防止不斷查找模塊上了繼承鏈。