module Monkey::Autoloader

Public Instance Methods

const_missing(const_name) click to toggle source
Calls superclass method
# File lib/monkey/autoloader.rb, line 22
def const_missing(const_name)
  const_name = const_name.to_s
  file = File.join(self.name.to_const_path, const_name.to_const_path)
  begin
    require file
    if const_defined? const_name
      const = const_get const_name
      const.extend Monkey::Autoloader
      const
    else
      warn "expected #{file} to define #{name}::#{const_name}"
      raise LoadError
    end
  rescue LoadError => error
    begin
      return parent.const_get(const_name) if respond_to? :parent and parent != self
    rescue NameError
    end
    warn "tried to load #{file}: #{error.message}"
    super
  end
end