Class: Flipper::Adapters::Memoized
- Inherits:
-
Object
- Object
- Flipper::Adapters::Memoized
- Defined in:
- lib/flipper/adapters/memoized.rb
Instance Method Summary collapse
- #delete(key) ⇒ Object
-
#initialize(adapter, cache = {}) ⇒ Memoized
constructor
A new instance of Memoized.
- #read(key) ⇒ Object
- #set_add(key, value) ⇒ Object
- #set_delete(key, value) ⇒ Object
- #set_members(key) ⇒ Object
- #write(key, value) ⇒ Object
Constructor Details
#initialize(adapter, cache = {}) ⇒ Memoized
Returns a new instance of Memoized.
6 7 8 9 |
# File 'lib/flipper/adapters/memoized.rb', line 6 def initialize(adapter, cache = {}) @adapter = adapter @cache = cache end |
Instance Method Details
#delete(key) ⇒ Object
23 24 25 26 27 |
# File 'lib/flipper/adapters/memoized.rb', line 23 def delete(key) result = @adapter.delete(key) @cache.delete(key) result end |
#read(key) ⇒ Object
11 12 13 14 15 |
# File 'lib/flipper/adapters/memoized.rb', line 11 def read(key) @cache.fetch(key) { @cache[key] = @adapter.read(key) } end |
#set_add(key, value) ⇒ Object
29 30 31 32 33 |
# File 'lib/flipper/adapters/memoized.rb', line 29 def set_add(key, value) result = @adapter.set_add(key, value) @cache.delete(key) result end |
#set_delete(key, value) ⇒ Object
35 36 37 38 39 |
# File 'lib/flipper/adapters/memoized.rb', line 35 def set_delete(key, value) result = @adapter.set_delete(key, value) @cache.delete(key) result end |
#set_members(key) ⇒ Object
41 42 43 44 45 |
# File 'lib/flipper/adapters/memoized.rb', line 41 def set_members(key) @cache.fetch(key) { @cache[key] = @adapter.set_members(key) } end |
#write(key, value) ⇒ Object
17 18 19 20 21 |
# File 'lib/flipper/adapters/memoized.rb', line 17 def write(key, value) result = @adapter.write(key, value) @cache.delete(key) result end |