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
- #empty? ⇒ Boolean
- #exist?(address) ⇒ true, false
- #get(address) ⇒ any
-
#initialize(path = nil) ⇒ MemoryAdapter
constructor
A new instance of MemoryAdapter.
- #keys ⇒ Array<String>
- #namespace(name) ⇒ MemoryAdapter
- #persistable? ⇒ Boolean
- #put(address, object) ⇒ void
- #stats ⇒ Object
- #sync ⇒ Object
Methods inherited from Base
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
82 83 84 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 82 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 |
#empty? ⇒ Boolean
74 75 76 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 74 def empty? db.empty? 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>
70 71 72 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 70 def keys db.keys end |
#namespace(name) ⇒ MemoryAdapter
65 66 67 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 65 def namespace(name) namespaces[name.to_s] ||= MemoryAdapter.new end |
#persistable? ⇒ Boolean
89 90 91 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 89 def persistable? false 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
78 79 80 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 78 def stats "No stats" end |
#sync ⇒ Object
86 87 |
# File 'lib/yoda/store/adapters/memory_adapter.rb', line 86 def sync end |