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:



116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# File 'lib/active_support/dependencies.rb', line 116

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