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.
10 11 12 13 14 15 |
# File 'lib/kennel/file_cache.rb', line 10 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
27 28 29 30 31 32 33 34 35 |
# File 'lib/kennel/file_cache.rb', line 27 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
17 18 19 20 21 22 23 24 25 |
# File 'lib/kennel/file_cache.rb', line 17 def open @data = load_data || {} begin expire_old_data yield self ensure persist end end |