Trouver des classes disponibles dans un module

J’ai un module MyModule . Je charge dynamicment les classes dedans. Comment puis-je obtenir une liste des classes définies dans son espace de noms?

Exemple:

 def load_plugins Dir.glob(File.dirname(__FILE__) + '/plugins/*.rb') do |f| MyModule.class_eval File.read(f) end # now how can I find the new classes I've loaded into MyModule? end 

Je devrais dire que chaque f contient quelque chose comme “classe Foo; fin”.

Vous pouvez aussi penser à ceci: dans Rails, comment trouver par programme toutes les classes définies dans le module ActiveRecord?

Les classes sont accessibles via des constantes. Les classes définies dans un module sont répertoriées en tant que constantes dans ce module. Il suffit donc de choisir les constantes faisant référence aux classes.

 MyModule.constants.select {|c| MyModule.const_get(c).is_a? Class}