Method: Jinx::Importer#load_dir
- Defined in:
- lib/jinx/importer.rb
#load_dir(dir) ⇒ Object (private)
Loads the Ruby source files in the given directory.
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
# File 'lib/jinx/importer.rb', line 160 def load_dir(dir) logger.debug { "Loading the class definitions in #{dir}..." } # Import the classes. srcs = sources(dir) # Introspect and load the classes in reverse class order, i.e. superclass before subclass. klasses = srcs.keys.transitive_closure { |k| [k.superclass] }.select { |k| srcs[k] }.reverse # Introspect the classes as necessary. klasses.each { |klass| (klass) unless introspected?(klass) } # Load the classes. klasses.each do |klass| file = srcs[klass] load_definition(klass, file) end logger.debug { "Loaded the class definitions in #{dir}." } end |