Wenn Sie:Wie finden Sie rekursiv alle Module und Klassen innerhalb eines Moduls?
module A
class B
end
end
Sie B und ähnliche Klassen über A.constants finden. In Ruby 1.9.3 können Sie B jedoch nicht erhalten, wenn es sich in einem anderen Modul befindet. In Ruby 1.8.7 können Sie.
module A
module Aa
class B
end
end
end
Wie erhalten Sie B von der ersten Ebene von A? Was würde ich als Ausgang mag, ist eine Reihe von Konstanten, die alle Klassen wie B enthalten, aber irgendwo innerhalb des Moduls A.
Was meinst du damit du B nicht bekommen kannst? Ich kann A :: Aa :: B.new machen, es funktioniert – megas
Würde 'MyModule.constants.select {| c | Klasse === MyModule.const_get (c)} 'Arbeit für Sie? http://stackoverflow.com/questions/833125/find-classes-available-in-a-module – ScottJShea
Ja, Sie können es direkt instanziieren. Aber wie würden Sie eine Reihe von Symbolen auffüllen, die Klassen wie B auflisten? Scott: Das wird nicht für Ruby 1.9.3 funktionieren (für Ruby 1.8.7). Konstanten enthalten aus irgendeinem Grund keine Module. – Jade