En el siguiente caso de prueba:¿Cómo maneja Ruby la herencia para las clases anidadas?
class Package
class Component
def initialize
p [:initialize,self]
end
end
end
class Package_A < Package
end
class Package_B < Package
end
# Why are the following components of type Package and not Package_A and Package_B
component=Package_A::Component.new
p component
component=Package_B::Component.new
p component
Resultados en:
[:initialize, #<Package::Component_1:0x2c0a8f8>]
#<Package::Component:0x2c0a8f8>
[:initialize, #<Package::Component_1:0x2c0a5b0>]
#<Package::Component:0x2c0a
¿Cómo consigo un Package_A.component específico y Package_B.component?
Gracias @Sorrow por el ejemplo anterior ... Lo usé para resolver mi problema de aplicación. Tal vez alguien intentará apoyar ** inheritable_nested_class Clase 1, Clase 2 ... ** por ejemplo: inheritable_nested_class Componente esto resultaría en el texto modelo anterior que se genera de forma automática en las subclases que heredan de la clase con dicha Directiva. Sería una buena tarea en una clase de metaprogramación avanzada :-) – DMisener