Method: SupportTableCache::MemoryCache#fetch
- Defined in:
- lib/support_table_cache/memory_cache.rb
#fetch(key, expires_in: nil) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/support_table_cache/memory_cache.rb', line 16 def fetch(key, expires_in: nil) serialized_value, expire_at = @cache[key] if serialized_value.nil? || (expire_at && expire_at < Process.clock_gettime(Process::CLOCK_MONOTONIC)) value = yield if block_given? return nil if value.nil? write(key, value, expires_in: expires_in) serialized_value = Marshal.dump(value) end Marshal.load(serialized_value) end |