aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorayaya <ayaya@ayaya.tw>2012-01-13 14:17:19 +0800
committerayaya <ayaya@ayaya.tw>2012-03-29 11:09:42 +0800
commit2ac67358a3ce6bf528502dd4c141061d261c2ffb (patch)
tree324e1cac9807f52453e8902276a854280bf7b893
parentbbd2caeaf916980b4c55ffce2b8fd9097082f27a (diff)
downloadrails-2ac67358a3ce6bf528502dd4c141061d261c2ffb.tar.gz
rails-2ac67358a3ce6bf528502dd4c141061d261c2ffb.tar.bz2
rails-2ac67358a3ce6bf528502dd4c141061d261c2ffb.zip
prevent the cache sweeper ignores NoMethodError
-rw-r--r--actionpack/lib/action_controller/caching/sweeping.rb2
-rw-r--r--actionpack/test/controller/filters_test.rb7
2 files changed, 8 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/caching/sweeping.rb b/actionpack/lib/action_controller/caching/sweeping.rb
index bb176ca3f9..cc1fa23935 100644
--- a/actionpack/lib/action_controller/caching/sweeping.rb
+++ b/actionpack/lib/action_controller/caching/sweeping.rb
@@ -93,7 +93,7 @@ module ActionController #:nodoc:
end
def method_missing(method, *arguments, &block)
- super unless @controller
+ return super unless @controller
@controller.__send__(method, *arguments, &block)
end
end
diff --git a/actionpack/test/controller/filters_test.rb b/actionpack/test/controller/filters_test.rb
index 65c853f6eb..ef7fbca675 100644
--- a/actionpack/test/controller/filters_test.rb
+++ b/actionpack/test/controller/filters_test.rb
@@ -510,6 +510,13 @@ class FilterTest < ActionController::TestCase
end
end
+ def test_sweeper_should_not_ignore_no_method_error
+ sweeper = ActionController::Caching::Sweeper.send(:new)
+ assert_raise NoMethodError do
+ sweeper.send_not_defined
+ end
+ end
+
def test_sweeper_should_not_block_rendering
response = test_process(SweeperTestController)
assert_equal 'hello world', response.body