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 |
# File 'lib/kennel/file_cache.rb', line 23 def fetch(key, key_version) old_value, old_version = @data[key] return old_value if old_version == [key_version, @cache_version] new_value = yield @data[key] = [new_value, [key_version, @cache_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 |