Si usted tiene:¿Cómo se encuentran todos los módulos y clases dentro de un módulo, recursivamente?
module A
class B
end
end
puede encontrar clases B y similares a través de A.constants. Sin embargo, en Ruby 1.9.3, no puede obtener B si está dentro de otro módulo. En Ruby 1.8.7 puedes.
module A
module Aa
class B
end
end
end
¿Cómo se obtiene B del primer nivel de A? Lo que me gustaría que la salida es una matriz de constantes, que incluyen todas las clases como B, pero en cualquier lugar dentro del módulo A.
¿Qué quieres decir con que no puedes obtener B? Puedo hacer A :: Aa :: B.nuevo, funciona – megas
Podría 'MyModule.constants.select {| c | Clase === MyModule.const_get (c)} '¿funciona para usted? http://stackoverflow.com/questions/833125/find-classes-available-in-a-module – ScottJShea
Sí, puede crear una instancia directamente. Pero, ¿cómo llenarías una serie de símbolos, que incluyen clases como B? Scott: eso no funcionará para Ruby 1.9.3 (sería para Ruby 1.8.7). Las constantes no incluyen módulos por alguna razón. – Jade