Class: ResponseBank::ResponseCacheHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/response_bank/response_cache_handler.rb

Instance Method Summary collapse

Constructor Details

#initialize(key_data:, version_data:, env:, cache_age_tolerance:, serve_unversioned:, headers:, force_refill_cache: false, cache_store: ResponseBank.cache_store, &block) ⇒ ResponseCacheHandler

Returns a new instance of ResponseCacheHandler.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/response_bank/response_cache_handler.rb', line 6

def initialize(
  key_data:,
  version_data:,
  env:,
  cache_age_tolerance:,
  serve_unversioned:,
  headers:,
  force_refill_cache: false,
  cache_store: ResponseBank.cache_store,
  &block
)
  @cache_miss_block = block

  @key_data = key_data
  @version_data = version_data
  @env = env
  @cache_age_tolerance = cache_age_tolerance

  @serve_unversioned = serve_unversioned
  @force_refill_cache = force_refill_cache
  @cache_store = cache_store
  @headers = headers || {}
end

Instance Method Details

#run!Object



30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/response_bank/response_cache_handler.rb', line 30

def run!
  @env['cacheable.cache']           = true
  @env['cacheable.key']             = versioned_key_hash
  @env['cacheable.unversioned-key'] = unversioned_key_hash

  ResponseBank.log(cacheable_info_dump)

  if @force_refill_cache
    refill_cache
  else
    try_to_serve_from_cache
  end
end

#unversioned_key_hashObject



48
49
50
# File 'lib/response_bank/response_cache_handler.rb', line 48

def unversioned_key_hash
  @unversioned_key_hash ||= key_hash(unversioned_key)
end

#versioned_key_hashObject



44
45
46
# File 'lib/response_bank/response_cache_handler.rb', line 44

def versioned_key_hash
  @versioned_key_hash ||= key_hash(versioned_key)
end