Class: Flipper::Adapters::Memoized
- Inherits:
-
Object
- Object
- Flipper::Adapters::Memoized
- Defined in:
- lib/flipper/adapters/memoized.rb
Instance Method Summary collapse
-
#delete(key) ⇒ Object
Public.
-
#initialize(adapter, cache = {}) ⇒ Memoized
constructor
Public.
-
#read(key) ⇒ Object
Public.
-
#set_add(key, value) ⇒ Object
Public.
-
#set_delete(key, value) ⇒ Object
Public.
-
#set_members(key) ⇒ Object
Public.
-
#write(key, value) ⇒ Object
Public.
Constructor Details
#initialize(adapter, cache = {}) ⇒ Memoized
Public
7 8 9 10 |
# File 'lib/flipper/adapters/memoized.rb', line 7 def initialize(adapter, cache = {}) @adapter = adapter @cache = cache end |
Instance Method Details
#delete(key) ⇒ Object
Public
27 28 29 30 31 |
# File 'lib/flipper/adapters/memoized.rb', line 27 def delete(key) result = @adapter.delete(key) @cache.delete(key) result end |
#read(key) ⇒ Object
Public
13 14 15 16 17 |
# File 'lib/flipper/adapters/memoized.rb', line 13 def read(key) @cache.fetch(key) { @cache[key] = @adapter.read(key) } end |
#set_add(key, value) ⇒ Object
Public
34 35 36 37 38 |
# File 'lib/flipper/adapters/memoized.rb', line 34 def set_add(key, value) result = @adapter.set_add(key, value) @cache.delete(key) result end |
#set_delete(key, value) ⇒ Object
Public
41 42 43 44 45 |
# File 'lib/flipper/adapters/memoized.rb', line 41 def set_delete(key, value) result = @adapter.set_delete(key, value) @cache.delete(key) result end |
#set_members(key) ⇒ Object
Public
48 49 50 51 52 |
# File 'lib/flipper/adapters/memoized.rb', line 48 def set_members(key) @cache.fetch(key) { @cache[key] = @adapter.set_members(key) } end |
#write(key, value) ⇒ Object
Public
20 21 22 23 24 |
# File 'lib/flipper/adapters/memoized.rb', line 20 def write(key, value) result = @adapter.write(key, value) @cache.delete(key) result end |