Search code examples
rubymoduleintrospection

Get all classes defined in module ruby


Is it possible to know all the classes defined inside a module in ruby.

module A
  class Klass
  end
  class Klass1
  end
end

Is there any ruby introspection method to get all the classes defined in module A?


Solution

  • Here is one way

    module A
      class Klass
      end
      X = 10
      module B;end
    end
    
    # Just to list the class(s) defined inside A
    A.constants.select { |k| A.const_get(k).instance_of? Class } # => [:Klass] 
    

    Nice post to do the same in recursively.