Class: SandthornDriverEventStore::EventStore
- Inherits:
-
Object
- Object
- SandthornDriverEventStore::EventStore
- Defined in:
- lib/sandthorn_driver_event_store/event_store.rb
Instance Attribute Summary collapse
-
#driver ⇒ Object
readonly
Returns the value of attribute driver.
Instance Method Summary collapse
- #all(aggregate_type) ⇒ Object
- #find(aggregate_id, aggregate_type, after_aggregate_version = 0) ⇒ Object
- #get_events(*args) ⇒ Object
-
#initialize(event_store_driver:) ⇒ EventStore
constructor
A new instance of EventStore.
- #save_events(events, aggregate_id, aggregate_type) ⇒ Object
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
#driver ⇒ Object (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 |