Class: Kennel::FileCache
- Inherits:
-
Object
- Object
- Kennel::FileCache
- Defined in:
- lib/kennel/file_cache.rb
Instance Method Summary collapse
- #fetch(key, key_version) ⇒ Object
-
#initialize(file, cache_version) ⇒ FileCache
constructor
A new instance of FileCache.
- #open ⇒ Object
Constructor Details
#initialize(file, cache_version) ⇒ FileCache
Returns a new instance of FileCache.
8 9 10 11 12 13 |
# File 'lib/kennel/file_cache.rb', line 8 def initialize(file, cache_version) @file = file @cache_version = cache_version @now = Time.now.to_i @expires = @now + (30 * 24 * 60 * 60) # 1 month end |
Instance Method Details
#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 |
#open ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/kennel/file_cache.rb', line 15 def open load_data expire_old_data yield self ensure persist end |