Class: Cero::Adapters::MemoryAdapter
- Inherits:
-
AbstractAdapter
- Object
- AbstractAdapter
- Cero::Adapters::MemoryAdapter
- Defined in:
- lib/cero/adapters/memory_adapter.rb
Instance Method Summary collapse
- #all(collection) ⇒ Object
- #clear(collection) ⇒ Object
- #count(collection) ⇒ Object
- #create(collection, entity) ⇒ Object
- #delete(collection, entity) ⇒ Object
- #find(collection, id) ⇒ Object
- #first(collection) ⇒ Object
-
#initialize(collection = nil) ⇒ MemoryAdapter
constructor
A new instance of MemoryAdapter.
- #last(collection) ⇒ Object
- #query(collection) {|@collection[collection].values| ... } ⇒ Object
- #save(collection, entity) ⇒ Object
- #update(collection, entity) ⇒ Object
Constructor Details
#initialize(collection = nil) ⇒ MemoryAdapter
Returns a new instance of MemoryAdapter.
5 6 7 8 9 10 |
# File 'lib/cero/adapters/memory_adapter.rb', line 5 def initialize(collection = nil) super @lock = Monitor.new @collection[collection] = {} setup end |
Instance Method Details
#all(collection) ⇒ Object
38 39 40 |
# File 'lib/cero/adapters/memory_adapter.rb', line 38 def all(collection) @collection[collection].values end |
#clear(collection) ⇒ Object
58 59 60 |
# File 'lib/cero/adapters/memory_adapter.rb', line 58 def clear(collection) @collection[collection] = {} end |
#count(collection) ⇒ Object
50 51 52 |
# File 'lib/cero/adapters/memory_adapter.rb', line 50 def count(collection) @collection[collection].size end |
#create(collection, entity) ⇒ Object
12 13 14 15 16 |
# File 'lib/cero/adapters/memory_adapter.rb', line 12 def create(collection, entity) next_id = next_id_for(@collection[collection]) entity.id = next_id @collection[collection][next_id] = entity end |
#delete(collection, entity) ⇒ Object
26 27 28 |
# File 'lib/cero/adapters/memory_adapter.rb', line 26 def delete(collection, entity) @collection[collection].delete(entity.id) end |
#find(collection, id) ⇒ Object
18 19 20 |
# File 'lib/cero/adapters/memory_adapter.rb', line 18 def find(collection, id) @collection[collection].fetch(id) { nil } end |
#first(collection) ⇒ Object
42 43 44 |
# File 'lib/cero/adapters/memory_adapter.rb', line 42 def first(collection) @collection[collection].values.first end |
#last(collection) ⇒ Object
46 47 48 |
# File 'lib/cero/adapters/memory_adapter.rb', line 46 def last(collection) @collection[collection].values.last end |
#query(collection) {|@collection[collection].values| ... } ⇒ Object
54 55 56 |
# File 'lib/cero/adapters/memory_adapter.rb', line 54 def query(collection, &block) yield @collection[collection].values end |
#save(collection, entity) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/cero/adapters/memory_adapter.rb', line 30 def save(collection, entity) if entity.id update(collection, entity) else create(collection, entity) end end |
#update(collection, entity) ⇒ Object
22 23 24 |
# File 'lib/cero/adapters/memory_adapter.rb', line 22 def update(collection, entity) @collection[collection][entity.id] = entity end |