Class: MaglevSupport::SubmoduleFinder

Inherits:
Object
  • Object
show all
Defined in:
lib/maglev_record/tools/submodule_finder.rb

Instance Method Summary collapse

Instance Method Details

#submodules_for(*constants) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
# File 'lib/maglev_record/tools/submodule_finder.rb', line 2

def submodules_for(*constants)
  whole_set = Set.new
  constants.each do |constant|
    @referenced_modules = Set.new
    reference(constant)
    whole_set = whole_set.union(@referenced_modules.select do |mod|
      mod.name.to_s.include?(constant.to_s)
    end)
  end
  constants + whole_set.to_a.sort_by do |mod| mod.name end
end