¿Cómo enumeraría los módulos que se han incluido en una clase específica en una jerarquía de clases en Ruby? Algo como esto:¿Cómo se incluyen los módulos incluidos en una clase de Ruby?
module SomeModule
end
class ParentModel < Object
include SomeModule
end
class ChildModel < ParentModel
end
p ChildModel.included_modules #=> [SomeModule]
p ChildModel.included_modules(false) #=> []
Listado de los ancestros hace que el módulo aparezca más arriba en el árbol:
p ChildModel.ancestors #=> [ChildModel, ParentModel, SomeModule, Object, Kernel]
No soy el póster original, pero Creo que puedo responder a tu pregunta sobre el argumento booleano. Lance espera que este método '.included_modules' se comporte como' # methods', '# public_methods' y otros métodos similares en Ruby. En ellos, un valor "verdadero" significa "muéstreme los métodos que obtuvo este objeto de su clase ADEMÁS de los que obtuvo de sus clases ancestrales y módulos incluidos". Un valor falso no devuelve estos métodos adicionales. – pablobm