當您在一個類或其它模塊的模塊,可以撥打Ruby:獲取擴展模塊的列表?
@mymod.included_modules
獲得包括模塊的列表。
是否有等同於列出模塊被擴展的模塊?
module Feature1
end
module Feature2
extend Feature1
end
Feature2.extended_modules #=> [Feature1]
當您在一個類或其它模塊的模塊,可以撥打Ruby:獲取擴展模塊的列表?
@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]
啊,是的。我現在記得這一點。有一些德國人的名字與這是相關的。 – Mario
這將是特徵類 –
我認爲社區已經解決了*單身類*。 Ruby 1.9中甚至有一個'Object#singleton_class'方法返回一個對象的單例類。之所以這麼做,當然是因爲'extend'實際上就是'singleton_class.include'。 –
所有紅寶石模塊可列出從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] }'
希望這有助於在一定程度上!
祖先功能可能有些幫助 – Orbit