Class: Yoda::Store::Adapters::MemoryAdapter
- Defined in:
- lib/yoda/store/adapters/memory_adapter.rb
Overview
An adapter implementation to store object in memory. This implementation losts data on exit and we recommend to use this adapter only for test.
Instance Attribute Summary collapse
- #db ⇒ Hash{String => String} readonly
Class Method Summary collapse
Instance Method Summary collapse
- #batch_write(data, bar) ⇒ Object
- #clear ⇒ Object
- #delete(address) ⇒ void
- #exist?(address) ⇒ true, false
- #get(address) ⇒ any
-
#initialize(path = nil) ⇒ MemoryAdapter
constructor
A new instance of MemoryAdapter.
- #keys ⇒ Array<String>
- #put(address, object) ⇒ void
- #stats ⇒ Object
- #sync ⇒ Object
Constructor Details
#initialize(path = nil) ⇒ MemoryAdapter
Returns a new instance of MemoryAdapter.
24 25 26 27 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 24 def initialize(path = nil) @path = path @db = {} end |
Instance Attribute Details
#db ⇒ Hash{String => String} (readonly)
21 22 23 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 21 def db @db end |
Class Method Details
.for(path) ⇒ Object
10 11 12 13 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 10 def for(path) @pool ||= {} @pool[path] || (@pool[path] = new(path)) end |
.type ⇒ Object
15 16 17 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 15 def type :memory end |
Instance Method Details
#batch_write(data, bar) ⇒ Object
37 38 39 40 41 42 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 37 def batch_write(data, ) data.each do |(k, v)| put(k, v) &.increment end end |
#clear ⇒ Object
72 73 74 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 72 def clear db.clear end |
#delete(address) ⇒ void
This method returns an undefined value.
53 54 55 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 53 def delete(address) db.delete(address.to_s) end |
#exist?(address) ⇒ true, false
59 60 61 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 59 def exist?(address) db.member?(address.to_s) end |
#get(address) ⇒ any
31 32 33 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 31 def get(address) JSON.load(db[address.to_s], symbolize_names: true) end |
#keys ⇒ Array<String>
64 65 66 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 64 def keys db.keys end |
#put(address, object) ⇒ void
This method returns an undefined value.
47 48 49 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 47 def put(address, object) db[address.to_s] = object.to_json end |
#stats ⇒ Object
68 69 70 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 68 def stats "No stats" end |
#sync ⇒ Object
76 77 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 76 def sync end |