Class: Cero::Adapters::MemoryAdapter

Inherits:
AbstractAdapter show all
Defined in:
lib/cero/adapters/memory_adapter.rb

Instance Method Summary collapse

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

Yields:

  • (@collection[collection].values)


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