class SandthornDriverEventStore::EventStore

Attributes

driver[R]

Public Class Methods

new(event_store_driver: @driver = event_store_driver) click to toggle source
# 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

Public Instance Methods

all(aggregate_type) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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

Private Instance Methods

get_event_access(db) click to toggle source
# File lib/sandthorn_driver_event_store/event_store.rb, line 39
def get_event_access(db)
  EventAccess.new(storage(db))
end
storage(db) click to toggle source
# File lib/sandthorn_driver_event_store/event_store.rb, line 43
def storage(db)
  @storage
end