Module: ActiveSupport::Dependencies::ClassConstMissing

Defined in:
lib/active_support/dependencies.rb

Overview

Class includes this module

Instance Method Summary collapse

Instance Method Details

#const_missing(const_name) ⇒ Object

:nodoc:



87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/active_support/dependencies.rb', line 87

def const_missing(const_name)
  if [Object, Kernel].include?(self) || parent == self
    super
  else
    begin
      begin
        Dependencies.load_missing_constant self, const_name
      rescue NameError
        parent.send :const_missing, const_name
      end
    rescue NameError => e
      # Make sure that the name we are missing is the one that caused the error
      parent_qualified_name = Dependencies.qualified_name_for parent, const_name
      raise unless e.missing_name? parent_qualified_name
      qualified_name = Dependencies.qualified_name_for self, const_name
      raise NameError.new("uninitialized constant #{qualified_name}").copy_blame!(e)
    end
  end
end