Module: RubyPatch::AutoLoad

Defined in:
lib/ruby_patch/auto_load.rb

Instance Method Summary collapse

Instance Method Details

#const_missing(name) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/ruby_patch/auto_load.rb', line 4

def const_missing(name)
  require file_name(name)

  # Consider the case where you try to require ::A::B.
  # If you don't use `full_name', `defined?' will determine whether ::RubyPatch::AutoLoad::B is defined, whereas `self' is ::A.
  if eval "defined? #{full_name(name)}"
    const_get(name)
  else
    $stderr.puts "#{full_name(name)} is not defined in #{file_name(name)}."
    raise super
  end
end