Feature #10108
closedNameError#name and nested constants
Description
Hello,
We wanted to bring a discussion around the behavior of NameError#name with nested constants. The result can be quite unexpected when we are dealing with them. For instance:
begin
Math::PHI
rescue NameError => e
e.name # => :PHI
end
Having Math::PHI seems more expected. Rubinius works the same way as MRI while JRuby will return a symbol with the full path (i.e. :"Math::PHI"
). Is there any reason why you are returning only the last part of the missing "path" ? At the very least, there is a documentation problem since NameError#name
's documentation states:
name_error.name -> string or nil
but it always return a symbol.
Have a nice day !
Updated by nobu (Nobuyoshi Nakada) over 10 years ago
- Tracker changed from Misc to Feature
- Description updated (diff)
Do you want a method to return full qualified name, or an array of names?
Updated by vipulnsward (Vipul Amler) over 10 years ago
A full qualified name would be a more appropriate and natural fit.
Updated by robin850 (Robin Dupret) over 10 years ago
Yes, a full qualified name seems more appropriate and more consistent with the output of the error message. Thanks for the quick answer !
Updated by nobu (Nobuyoshi Nakada) over 10 years ago
- Status changed from Open to Feedback
Good name is desired, as usual.