Method: Kennel::FileCache#fetch

Defined in:
lib/kennel/file_cache.rb

#fetch(key, key_version) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/kennel/file_cache.rb', line 23

def fetch(key, key_version)
  old_value, old_version = @data[key]
  expected_version = [key_version, @cache_version]
  return old_value if old_version == expected_version

  new_value = yield
  @data[key] = [new_value, expected_version, @expires]
  new_value
end