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)

:nodoc:
def initialize(options, &block)
  @cache_path, @store_options, @cache_layout =
    options.values_at(:cache_path, :store_options, :layout)
end