Exception: NameError
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
           ::Exception | |
| Instance Chain: 
          self,
           ::Exception | |
| Inherits: | Exception | 
| Defined in: | activesupport/lib/active_support/core_ext/name_error.rb | 
Instance Method Summary
- 
    
      #missing_name  
    
    Extract the name of the missing constant from the exception message. 
- 
    
      #missing_name?(name)  ⇒ Boolean 
    
    Was this exception raised because the given name was missing? 
::Exception - Inherited
Instance Method Details
#missing_name
Extract the name of the missing constant from the exception message.
begin
  HelloWorld
rescue NameError => e
  e.missing_name
end
# => "HelloWorld"# File 'activesupport/lib/active_support/core_ext/name_error.rb', line 12
def missing_name # Since ruby v2.3.0 `did_you_mean` gem is loaded by default. # It extends NameError#message with spell corrections which are SLOW. # We should use original_message message instead. = respond_to?(:) ? : self. if /undefined local variable or method/ !~ $1 if /((::)?([A-Z]\w*)(::[A-Z]\w*)*)$/ =~ end end
    #missing_name?(name)  ⇒ Boolean 
  
Was this exception raised because the given name was missing?
begin
  HelloWorld
rescue NameError => e
  e.missing_name?("HelloWorld")
end
# => true# File 'activesupport/lib/active_support/core_ext/name_error.rb', line 31
def missing_name?(name) if name.is_a? Symbol self.name == name else missing_name == name.to_s end end