El siguiente ejemplo no¿Cómo obtengo class-object de la cadena "A :: B :: C" en Ruby?
class A
class B
end
end
p Object.const_get 'A' # => A
p Object.const_get 'A::B' # => NameError: wrong constant name A::B
ACTUALIZACIÓN
Preguntas sobre el tema preguntado antes:
El último gives a nice solution que puede ser convertido en
class String
def to_class
self.split('::').inject(Object) do |mod, class_name|
mod.const_get(class_name)
end
end
end
class A
class B
end
end
p "A::B".to_class # => A::B
¿Qué pasa si me gustaría declarar el uso del método 'to_class' y asignar su valor a un' 'CONSTANT' dentro de un class', por ejemplo, 'clase A begin MY_CONST =" SomeOtherClass ".to_class end'? Me sale constante sin inicializar si estoy llamando a 'initialize', por ejemplo. 'class_eval', ¿qué podría intentar? ¡Gracias! – Dr1Ku