Class: Aggregates::AggregateRepository

Inherits:
Object
  • Object
show all
Defined in:
lib/aggregates/aggregate_repository.rb

Overview

Uses the storage backend to store load aggregates.

Instance Method Summary collapse

Constructor Details

#initialize(storage_backend) ⇒ AggregateRepository

Returns a new instance of AggregateRepository.



8
9
10
# File 'lib/aggregates/aggregate_repository.rb', line 8

def initialize(storage_backend)
  @storage_backend = storage_backend
end

Instance Method Details

#load_aggregate(type, id, at: nil) ⇒ Object



12
13
14
15
16
17
# File 'lib/aggregates/aggregate_repository.rb', line 12

def load_aggregate(type, id, at: nil)
  event_stream = create_aggregate_event_stream(type, id)
  aggregate = type.new(id, event_stream)
  replay_events_on_aggregate(aggregate, event_stream, at)
  aggregate
end