class Rack::AcornCache::Configuration
Attributes
cache_everything[RW]
default_acorn_cache_ttl[RW]
default_browser_cache_ttl[RW]
default_ignore_query_params[RW]
default_must_revalidate[RW]
page_rules[R]
storage[W]
Public Class Methods
new()
click to toggle source
# File lib/acorn_cache/config.rb, line 17 def initialize @cache_everything = false @storage = :redis end
Public Instance Methods
page_rule_for_url(url)
click to toggle source
# File lib/acorn_cache/config.rb, line 28 def page_rule_for_url(url) if cache_everything return default_page_rule unless page_rules no_page_rule_found = proc { return default_page_rule } else return nil unless page_rules no_page_rule_found = proc { return nil } end page_rules.find(no_page_rule_found) do |k, _| page_rule_key_matches_url?(k, url) end.last end
page_rules=(user_page_rules)
click to toggle source
# File lib/acorn_cache/config.rb, line 22 def page_rules=(user_page_rules) @page_rules = user_page_rules.each_with_object({}) do |(k, v), result| result[k] = build_page_rule(v) end end
storage()
click to toggle source
# File lib/acorn_cache/config.rb, line 42 def storage if @storage == :redis Rack::AcornCache::Storage.redis elsif @storage == :memcached Rack::AcornCache::Storage.memcached end end
Private Instance Methods
build_page_rule(options)
click to toggle source
# File lib/acorn_cache/config.rb, line 59 def build_page_rule(options) options[:ignore_query_params] = default_ignore_query_params return options if options[:respect_existing_headers] || options[:must_revalidate] { acorn_cache_ttl: default_acorn_cache_ttl, browser_cache_ttl: default_browser_cache_ttl }.merge(options) end
default_page_rule()
click to toggle source
# File lib/acorn_cache/config.rb, line 52 def default_page_rule { acorn_cache_ttl: default_acorn_cache_ttl, browser_cache_ttl: default_browser_cache_ttl, ignore_query_params: default_ignore_query_params, must_revalidate: default_must_revalidate } end
page_rule_key_matches_url?(page_rule_key, url)
click to toggle source
# File lib/acorn_cache/config.rb, line 67 def page_rule_key_matches_url?(page_rule_key, url) return url =~ page_rule_key if page_rule_key.is_a?(Regexp) string = page_rule_key.gsub("*", ".*") url =~ /^#{string}$/ end