From 791127eee45ee53b3ee897c647eceff17056c3e8 Mon Sep 17 00:00:00 2001 From: Jeroen Jacobs Date: Tue, 21 Jun 2011 12:34:00 +0200 Subject: Fixes an issue where cache sweepers with only after filters would have no controller object It would raise undefined method controller_name for nil --- actionpack/lib/action_controller/caching/sweeping.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/actionpack/lib/action_controller/caching/sweeping.rb b/actionpack/lib/action_controller/caching/sweeping.rb index e9db0d97b6..938a6ae81c 100644 --- a/actionpack/lib/action_controller/caching/sweeping.rb +++ b/actionpack/lib/action_controller/caching/sweeping.rb @@ -61,6 +61,7 @@ module ActionController #:nodoc: end def after(controller) + self.controller = controller callback(:after) if controller.perform_caching # Clean up, so that the controller can be collected after this request self.controller = nil -- cgit v1.2.3 From 93ff522120a916f49133d2f8539d904b46f8d539 Mon Sep 17 00:00:00 2001 From: Jeroen Jacobs Date: Wed, 22 Jun 2011 18:00:46 +0200 Subject: Tests only after filters in cache sweepers --- actionpack/test/controller/filters_test.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/actionpack/test/controller/filters_test.rb b/actionpack/test/controller/filters_test.rb index 9e44e8e088..d5e3da4d88 100644 --- a/actionpack/test/controller/filters_test.rb +++ b/actionpack/test/controller/filters_test.rb @@ -530,6 +530,11 @@ class FilterTest < ActionController::TestCase assert sweeper.before(TestController.new) end + def test_after_method_of_sweeper_should_always_return_nil + sweeper = ActionController::Caching::Sweeper.send(:new) + assert_nil sweeper.after(TestController.new) + end + def test_non_yielding_around_filters_not_returning_false_do_not_raise controller = NonYieldingAroundFilterController.new controller.instance_variable_set "@filter_return_value", true -- cgit v1.2.3