Class: Rack::AcornCache::Request
- Inherits:
-
Request
- Object
- Request
- Rack::AcornCache::Request
- Extended by:
- Forwardable
- Defined in:
- lib/acorn_cache/request.rb
Instance Method Summary collapse
- #cache_key ⇒ Object
- #cacheable? ⇒ Boolean
-
#initialize(env) ⇒ Request
constructor
A new instance of Request.
- #max_age_more_restrictive?(cached_response) ⇒ Boolean
- #page_rule ⇒ Object (also: #page_rule?)
- #update_conditional_headers!(cached_response) ⇒ Object
Constructor Details
#initialize(env) ⇒ Request
Returns a new instance of Request.
9 10 11 12 |
# File 'lib/acorn_cache/request.rb', line 9 def initialize(env) super @cache_control_header = CacheControlHeader.new(@env["HTTP_CACHE_CONTROL"]) end |
Instance Method Details
#cache_key ⇒ Object
37 38 39 40 |
# File 'lib/acorn_cache/request.rb', line 37 def cache_key return base_url + path if page_rule? && page_rule[:ignore_query_params] url end |
#cacheable? ⇒ Boolean
29 30 31 |
# File 'lib/acorn_cache/request.rb', line 29 def cacheable? get? && (config.cache_everything || page_rule?) end |
#max_age_more_restrictive?(cached_response) ⇒ Boolean
24 25 26 27 |
# File 'lib/acorn_cache/request.rb', line 24 def max_age_more_restrictive?(cached_response) cached_response.stale_time_specified? && max_age && max_age < cached_response.time_to_live end |
#page_rule ⇒ Object Also known as: page_rule?
33 34 35 |
# File 'lib/acorn_cache/request.rb', line 33 def page_rule @page_rule ||= config.page_rule_for_url(url) if config end |
#update_conditional_headers!(cached_response) ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/acorn_cache/request.rb', line 14 def update_conditional_headers!(cached_response) if cached_response.etag_header self.if_none_match = cached_response.etag_header end if cached_response.last_modified_header self.if_modified_since = cached_response.last_modified_header end end |