module Rack::AcornCache::FreshnessRules

Public Class Methods

cached_response_fresh_for_request?(cached_response, request) click to toggle source
# File lib/acorn_cache/freshness_rules.rb, line 3
def self.cached_response_fresh_for_request?(cached_response, request)
  return false unless cached_response
  if cached_response.fresh?
    if request.max_age_more_restrictive?(cached_response)
      return cached_response.date + request.max_age >= Time.now.gmtime
    elsif request.max_fresh
      return cached_response.expiration_date - request.max_fresh >= Time.now.gmtime
    end
    true
  else
    return false unless request.max_stale?
    return true if request.max_stale == true
    cached_response.expiration_date + request.max_stale >= Time.now.gmtime
  end
end