Module: Monkey::Autoloader

Defined in:
lib/monkey/autoloader.rb

Instance Method Summary collapse

Instance Method Details

#const_missing(const_name) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/monkey/autoloader.rb', line 3

def const_missing(const_name)
  const_name = const_name.to_s
  file = File.join(const_name.to_const_path, self.name.to_const_path)
  begin
    require file
    if const_defined? const_name
      const = const_get const_get
      const.extend Monkey::Autoloader
      const
    else
      warn "expected #{file} to define #{name}::#{const_name}"
      raise LoadError
    end
  rescue LoadError
    super
  end
end