class ActionController::Caching::Actions::ActionCachePath

Attributes

extension[R]
path[R]

Public Class Methods

new(controller, options = {}, infer_extension = true) click to toggle source

If infer_extension is true, the cache path extension is looked up from the request's path and format. This is desirable when reading and writing the cache, but not when expiring the cache - expire_action should expire the same files regardless of the request format.

# File lib/action_controller/caching/actions.rb, line 166
def initialize(controller, options = {}, infer_extension = true)
  if infer_extension
    @extension = controller.params[:format]
    options.reverse_merge!(:format => @extension) if options.is_a?(Hash)
  end

  path = controller.url_for(options).split(%r{://}).last
  @path = normalize!(path)
end

Private Instance Methods

normalize!(path) click to toggle source
# File lib/action_controller/caching/actions.rb, line 177
def normalize!(path)
  path << 'index' if path[-1] == ?/
  path << ".#{extension}" if extension and !path.split('?').first.ends_with?(".#{extension}")
  URI.parser.unescape(path)
end