Class: SandthornDriverEventStore::EventStore

Inherits:
Object
  • Object
show all
Defined in:
lib/sandthorn_driver_event_store/event_store.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(event_store_driver:) ⇒ EventStore

Returns a new instance of EventStore.



6
7
8
9
10
11
# File 'lib/sandthorn_driver_event_store/event_store.rb', line 6

def initialize event_store_driver:
  @driver = event_store_driver
  driver.execute do |db|
    @storage = db
  end
end

Instance Attribute Details

#driverObject (readonly)

Returns the value of attribute driver.



4
5
6
# File 'lib/sandthorn_driver_event_store/event_store.rb', line 4

def driver
  @driver
end

Instance Method Details

#all(aggregate_type) ⇒ Object



28
29
30
# File 'lib/sandthorn_driver_event_store/event_store.rb', line 28

def all aggregate_type
  raise :NotImplemented
end

#find(aggregate_id, aggregate_type, after_aggregate_version = 0) ⇒ Object



21
22
23
24
25
26
# File 'lib/sandthorn_driver_event_store/event_store.rb', line 21

def find aggregate_id, aggregate_type, after_aggregate_version = 0
  driver.execute do |db|
    event_access = get_event_access(db)
    event_access.find_events(aggregate_id, aggregate_type, after_aggregate_version)
  end
end

#get_events(*args) ⇒ Object



32
33
34
# File 'lib/sandthorn_driver_event_store/event_store.rb', line 32

def get_events(*args)
  raise :NotImplemented
end

#save_events(events, aggregate_id, aggregate_type) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/sandthorn_driver_event_store/event_store.rb', line 13

def save_events events, aggregate_id, aggregate_type
  driver.execute do |db|
    event_access = get_event_access(db)
    events = events.map { |event| event[:aggregate_type] = aggregate_type; event[:aggregate_id] = aggregate_id; event;}
    event_access.store_events(events)
  end
end