From a04b1f3d8a54aaec988c264267cf9f2c2340f275 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 22 Dec 2004 13:44:16 +0000 Subject: Added more informative exception when using helper :some_helper and the helper requires another file that fails, you'll get an error message tells you what file actually failed to load, rather than falling back on assuming it was the helper file itself #346 [dblack] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@250 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_controller/helpers.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'actionpack/lib/action_controller') diff --git a/actionpack/lib/action_controller/helpers.rb b/actionpack/lib/action_controller/helpers.rb index 06bbd56283..0e1ff7dd16 100644 --- a/actionpack/lib/action_controller/helpers.rb +++ b/actionpack/lib/action_controller/helpers.rb @@ -55,8 +55,13 @@ module ActionController #:nodoc: class_name = Inflector.camelize(file_name) begin require_dependency(file_name) - rescue LoadError - raise LoadError, "Missing helper file helpers/#{file_name}.rb" + rescue LoadError => load_error + requiree = / -- (.*?)(\.rb)?$/.match(load_error).to_a[1] + if requiree == file_name + raise LoadError, "Missing helper file helpers/#{file_name}.rb" + else + raise LoadError, "Can't load file: #{requiree}" + end end raise ArgumentError, "Missing #{class_name} module in helpers/#{file_name}.rb" unless Object.const_defined?(class_name) add_template_helper(Object.const_get(class_name)) -- cgit v1.2.3