Module: Rack::AcornCache::FreshnessRules

Defined in:
lib/acorn_cache/freshness_rules.rb

Class Method Summary collapse

Class Method Details

.cached_response_fresh_for_request?(cached_response, request) ⇒ Boolean

Returns:

  • (Boolean)


3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 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