From b36df0f6c8e1af0a35b892c72d4ec0fbd30ec3ab Mon Sep 17 00:00:00 2001 From: Arthur Neves Date: Mon, 16 Jun 2014 23:13:42 -0400 Subject: Make dependencies.rb add a name to NameError --- activesupport/CHANGELOG.md | 3 +++ activesupport/lib/active_support/dependencies.rb | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md index d513874aee..d0a5ddcc1e 100644 --- a/activesupport/CHANGELOG.md +++ b/activesupport/CHANGELOG.md @@ -1,3 +1,6 @@ +* Make Dependencies pass a name to NameError error. + *arthurnn* + * Fixed `ActiveSupport::Cache::FileStore` exploding with long paths. *Adam Panzer / Michael Grosser* diff --git a/activesupport/lib/active_support/dependencies.rb b/activesupport/lib/active_support/dependencies.rb index 8a545e4386..d7db0d6648 100644 --- a/activesupport/lib/active_support/dependencies.rb +++ b/activesupport/lib/active_support/dependencies.rb @@ -187,7 +187,7 @@ module ActiveSupport #:nodoc: # top-level constant. def guess_for_anonymous(const_name) if Object.const_defined?(const_name) - raise NameError, "#{const_name} cannot be autoloaded from an anonymous class or module" + raise NameError.new "#{const_name} cannot be autoloaded from an anonymous class or module", const_name else Object end @@ -516,9 +516,9 @@ module ActiveSupport #:nodoc: end end - raise NameError, - "uninitialized constant #{qualified_name}", - caller.reject { |l| l.starts_with? __FILE__ } + name_error = NameError.new("uninitialized constant #{qualified_name}", qualified_name) + name_error.set_backtrace(caller.reject {|l| l.starts_with? __FILE__ }) + raise name_error end # Remove the constants that have been autoloaded, and those that have been -- cgit v1.2.3