Ich habe ein Modul Foo
, das ist der Namespace für viele Klassen wie Foo::Bar
, Foo::Baz
und so weiter.Wie erhalten Sie alle Klassennamen in einem Namespace in Ruby?
Gibt es eine Möglichkeit, alle Klassennamen, die durch Foo
Platziert sind, zurückzugeben?
Dies ist eine gute Antwort. Sie vergessen manchmal, dass Konstanten in Ruby alles sind, was mit einem Großbuchstaben _startet_, also Klassennamen sind konstante Instanzen der Typklasse. +1 –
@jcaudle Ruby tut * nicht * Lazy Load-Klassen. Du denkst an Rails. – sepp2k
Stellen Sie sicher, dass Sie zuvor alle Klassen geladen haben: 'Dir [" app/models/foo/*. Rb "]. Jede {| Datei | Datei laden} ' – espinchi