Ho un modulo MyModule
. Io carico dinamicamente le classi in esso. Come posso ottenere un elenco delle classi definite all'interno del suo spazio dei nomi?Trova classi disponibili in un modulo
Esempio:
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
dovrei dire che ogni f
contiene qualcosa come "classe Foo; end".
Si può anche pensare in questo modo: in Rails, come è possibile trovare in modo programmatico tutte le classi definite all'interno del modulo ActiveRecord?
Impressionante. Grazie. – joshuaxls
Una cosa: perché usi quel test invece di "MyModule.const_get (c) .is_a? Class"? Non ho familiarità con l'utilizzo di "===" in questo modo. – joshuaxls
Nessun motivo valido. La versione === era appena più leggibile per me. Usare is_a? funzionerebbe altrettanto bene – Chuck