class TrustyCms::PageResponseCacheDirector

def cache_timeout

def cache_timeout
  # TODO: This cache is caching even in development. That shouldn't be happening.
  @cache_timeout ||= 5.minutes
end

def cache_timeout=(val)

def cache_timeout=(val)
  @cache_timeout = val
end

def cacheable?

def cacheable?
  @listener.cacheable_request? && @page.cache?
end

def cacheable_response

def cacheable_response
  timeout = self.class.cache_timeout
  if @page.respond_to?(:cache_timeout)
    timeout = @page.cache_timeout
  end
  @listener.set_expiry timeout, :public => true, :private => false
end

def initialize(page, listener)

def initialize(page, listener)
  @page = page
  @listener = listener
end

def non_cacheable_response

def non_cacheable_response
  @listener.set_expiry nil, :private => true, "no-cache" => true
  @listener.set_etag('')
end

def set_cache_control

def set_cache_control
  cacheable? ? cacheable_response : non_cacheable_response
end