Fixed that MissingSourceFile's wasn't properly detected in production mode #925 [Nicholas Seckar]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@990 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
David Heinemeier Hansson 2005-03-25 09:07:01 +00:00
parent a5c6942830
commit 45137795e8
5 changed files with 9 additions and 11 deletions

View File

@ -82,14 +82,6 @@ module ActionController #:nodoc:
def inherited(child)
inherited_without_model(child)
return if child.controller_name == "application" # otherwise the ApplicationController in Rails will include itself
model_name = child.controller_name.singularize
begin
require_dependency model_name
child.model model_name
rescue MissingSourceFile => e
raise unless e.path == model_name + '.rb'
end
end
end
end

View File

@ -93,7 +93,7 @@ module ActionController #:nodoc:
inherited_without_helper(child)
begin child.helper(child.controller_path)
rescue MissingSourceFile => e
raise unless e.path == "helpers/#{child.controller_path}_helper.rb"
raise unless e.is_missing?("helpers/#{child.controller_path}_helper")
end
end
end

View File

@ -86,7 +86,7 @@ module ActionWebService # :nodoc:
inherited_without_api(child)
begin child.web_service_api(child.controller_path)
rescue MissingSourceFile => e
raise unless e.path == "apis/#{child.controller_path}_api.rb"
raise unless e.is_missing?("apis/#{child.controller_path}_api")
end
end
end

View File

@ -1,5 +1,7 @@
*SVN*
* Fixed that MissingSourceFile's wasn't properly detected in production mode #925 [Nicholas Seckar]
* Fixed that :counter_cache option would look for a line_items_count column for a LineItem object instead of lineitems_count
* Fixed that AR exists?() would explode on postgresql if the passed id did not match the PK type #900 [Scott Barron]

View File

@ -4,6 +4,10 @@ class MissingSourceFile < LoadError
super(message)
@path = path
end
def is_missing?(path)
path.gsub(/\.rb$/, '') == self.path.gsub(/\.rb$/, '')
end
def self.from_message(message)
REGEXPS.each do |regexp, capture|
@ -31,4 +35,4 @@ module ActiveSupport
::LoadError.extend(LoadErrorClassMethods)
end
end
end
end