Class: Rimc
- Inherits:
-
Object
- Object
- Rimc
- Defined in:
- lib/rimc.rb,
lib/rimc/version.rb,
lib/rimc/cache_entry.rb
Defined Under Namespace
Classes: CacheEntry
Constant Summary collapse
- VERSION =
'0.1.0'.freeze
Class Method Summary collapse
- .cache(cache_key, ttl) ⇒ Object
- .get(cache_key) ⇒ Object
- .set(cache_key, cached_object, ttl = nil) ⇒ Object
Class Method Details
.cache(cache_key, ttl) ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/rimc.rb', line 21 def cache(cache_key, ttl) result = get(cache_key) return result if result result = yield if block_given? set(result, cache_key, ttl) result end |
.get(cache_key) ⇒ Object
12 13 14 15 16 17 18 19 |
# File 'lib/rimc.rb', line 12 def get(cache_key) entry = cache_entries[cache_key] return nil unless entry return entry.cached_object unless entry.expired? cache_entries.delete(cache_key) nil end |
.set(cache_key, cached_object, ttl = nil) ⇒ Object
6 7 8 9 10 |
# File 'lib/rimc.rb', line 6 def set(cache_key, cached_object, ttl = nil) entry = CacheEntry.new(cached_object, expiration_time(ttl)) cache_entries[cache_key] = entry true end |