Tengo un módulo MyModule
. Cargo dinámicamente clases en él. ¿Cómo puedo obtener una lista de las clases definidas dentro de su espacio de nombres?Buscar clases disponibles en un Módulo
Ejemplo:
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
debería decir que cada f
contiene algo así como "la clase Foo; final".
También puede pensarlo así: en Rails, ¿cómo podría encontrar programáticamente todas las clases definidas dentro del módulo ActiveRecord?
Impresionante. Gracias. – joshuaxls
Una cosa: ¿por qué usa esa prueba en lugar de "MyModule.const_get (c) .is_a? Class"? No estoy familiarizado con el uso de "===" así. – joshuaxls
Sin razón convincente. La versión === fue más fácil de leer para mí. ¿Usando is_a? funcionaría igual de bien. – Chuck