57
我有一個模塊MyModule
。我動態加載類到它。我如何獲得在其名稱空間中定義的類的列表?查找模塊中可用的類
例子:
def load_plugins
Dir.glob(File.dirname(__FILE__) + '/plugins/*.rb') do |f|
MyModule.class_eval File.read(f)
end
# now how can I find the new classes I've loaded into MyModule?
end
我應該說,每個f
包含有類似 「類Foo;結束」。
你也可以這樣想:在Rails中,我怎樣才能以編程方式查找在ActiveRecord模塊中定義的所有類?
太棒了。謝謝。 – joshuaxls 2009-05-07 06:51:25
有一件事:爲什麼你使用該測試而不是「MyModule.const_get(c).is_a?Class」?我不熟悉如此使用「===」。 – joshuaxls 2009-05-07 06:57:26
沒有令人信服的理由。 ===版本對我來說更具可讀性。使用is_a?也會工作。 – Chuck 2009-05-07 07:04:54