Method: Arrow::Injectable.load_class

Defined in:
lib/arrow/mixins.rb

.load_class(classname) ⇒ Object

Return the Class object for the given derivative classname, attempting to load it if it hasn’t been already.



361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
# File 'lib/arrow/mixins.rb', line 361

def self::load_class( classname )
  Arrow::Logger[self].debug "Loading injectable class '#{classname}'"

  unless Arrow::Injectable.derivatives.include?( classname )
    modname = classname.downcase.gsub( /::/, '/' )
    Arrow::Logger[self].debug "Class not loaded yet. Trying to " +
      "load it from #{modname}"
    require modname or
      raise "%s didn't register with Injectable for some reason" % [ classname ]
    Arrow::Logger[self].debug "Loaded injectable class %s (%d classes loaded)" %
      [ classname, Arrow::Injectable.derivatives.length ]
  end

  Arrow::Injectable.derivatives[ classname ]
end