Dans Ruby, comment déterminez-vous les classes imbriquées d'une classe?Comment déterminez-vous les classes imbriquées d'une classe?
2
A
Répondre
2
En supposant que vous voulez dire les classes imbriquées dans le sens suivant:
class A
class B; end
class C; end
end
Où B
et C
sont 'imbriquées' dans A
alors ce qui suit devrait fonctionner:
class Class
def nested_classes
constants.collect { |c| const_get(c) }.
select { |m| m.instance_of?(Class) }
end
end
A.nested_classes => [A::B, A::C]
EDIT: Vous devrez peut-être utilisez des constantes (false) pour empêcher la recherche constante de modules plus haut dans la chaîne d'héritage.
+0
Merci pour la réponse. – Bijan
Oh mon dieu. Êtes-vous un être humain? – BoltClock
... donné pour vous. –
Ceci est mon corps 0 => === <: D – Tommy