Class: ActionController::Caching::Actions::ActionCacheFilter
- Defined in:
- lib/action_controller/caching/actions.rb
Overview
:nodoc:
Instance Method Summary collapse
- #after(controller) ⇒ Object
- #before(controller) ⇒ Object
- #filter(controller, action) ⇒ Object
-
#initialize(options, &block) ⇒ ActionCacheFilter
constructor
A new instance of ActionCacheFilter.
Constructor Details
#initialize(options, &block) ⇒ ActionCacheFilter
Returns a new instance of ActionCacheFilter.
84 85 86 |
# File 'lib/action_controller/caching/actions.rb', line 84 def initialize(, &block) @options = end |
Instance Method Details
#after(controller) ⇒ Object
108 109 110 111 112 |
# File 'lib/action_controller/caching/actions.rb', line 108 def after(controller) return if controller.rendered_action_cache || !caching_allowed(controller) action_content = cache_layout? ? content_for_layout(controller) : controller.response.body controller.write_fragment(controller.action_cache_path.path, action_content, @options[:store_options]) end |
#before(controller) ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/action_controller/caching/actions.rb', line 94 def before(controller) cache_path = ActionCachePath.new(controller, (controller, @options.slice(:cache_path))) if cache = controller.read_fragment(cache_path.path, @options[:store_options]) controller.rendered_action_cache = true set_content_type!(controller, cache_path.extension) = { :text => cache } .merge!(:layout => true) if cache_layout? controller.__send__(:render, ) false else controller.action_cache_path = cache_path end end |
#filter(controller, action) ⇒ Object
88 89 90 91 92 |
# File 'lib/action_controller/caching/actions.rb', line 88 def filter(controller, action) should_continue = before(controller) action.call if should_continue after(controller) end |