class ActionController::Caching::Actions::ActionCacheFilter
:nodoc:
def filter(controller)
def filter(controller) path_options = if @cache_path.respond_to?(:call) controller.instance_exec(controller, &@cache_path) else @cache_path end cache_path = ActionCachePath.new(controller, path_options || {}) body = controller.read_fragment(cache_path.path, @store_options) unless body controller.action_has_layout = false unless @cache_layout yield controller.action_has_layout = true body = controller._save_fragment(cache_path.path, @store_options) end body = controller.render_to_string(:text => body, :layout => true) unless @cache_layout controller.response_body = body controller.content_type = Mime[cache_path.extension || :html] end
def initialize(options, &block)
def initialize(options, &block) @cache_path, @store_options, @cache_layout = options.values_at(:cache_path, :store_options, :layout) end