module ActionController::Caching::Pages

def cache_page(content = nil, options = nil, gzip = Zlib::BEST_COMPRESSION)

cache_page "I'm the cached content", :controller => "lists", :action => "show"
If no options are provided, the url of the current request being handled is used. Example:
Manually cache the +content+ in the key determined by +options+. If no content is provided, the contents of response.body is used.
def cache_page(content = nil, options = nil, gzip = Zlib::BEST_COMPRESSION)
  return unless self.class.perform_caching && caching_allowed?
  path = case options
    when Hash
      url_for(options.merge(:only_path => true, :format => params[:format]))
    when String
      options
    else
      request.path
  end
  if (type = Mime::LOOKUP[self.content_type]) && (type_symbol = type.symbol).present?
    extension = ".#{type_symbol}"
  end
  self.class.cache_page(content || response.body, path, extension, gzip)
end

def expire_page(options = {})

expire_page :controller => "lists", :action => "show"
Expires the page that was cached with the +options+ as a key. Example:
def expire_page(options = {})
  return unless self.class.perform_caching
  if options.is_a?(Hash)
    if options[:action].is_a?(Array)
      options[:action].each do |action|
        self.class.expire_page(url_for(options.merge(:only_path => true, :action => action)))
      end
    else
      self.class.expire_page(url_for(options.merge(:only_path => true)))
    end
  else
    self.class.expire_page(options)
  end
end