class TrustyCms::PageResponseCacheDirector

def cache_timeout

def cache_timeout
  @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