class Synapse::Configuration::AggregateSnapshotTakerDefinitionBuilder
Definition
builder used to create aggregate snapshot takers
@example The minimum possible effort to build an aggregate snapshot taker
snapshot_taker
@example Build an aggregate snapshot taker using an alternate event store and factory tag
snapshot_taker :alt_snapshot_taker do use_aggregate_factory_tag :alt_factory_tag use_event_store :alt_event_store end
Public Instance Methods
use_aggregate_factory_tag(aggregate_factory_tag)
click to toggle source
Changes the tag used to find aggregate factories necessary for creating aggregates so that a snapshot can be taken of their current state
@see EventSourcing::AggregateFactory
@param [Symbol] aggregate_factory_tag @return [undefined]
# File lib/synapse/configuration/component/event_sourcing/snapshot/aggregate_taker.rb, line 20 def use_aggregate_factory_tag(aggregate_factory_tag) @aggregate_factory_tag = aggregate_factory_tag end
use_event_store(event_store)
click to toggle source
Changes the event store used to load and store aggregates
@see EventStore::SnapshotEventStore
@param [Symbol] event_store @return [undefined]
# File lib/synapse/configuration/component/event_sourcing/snapshot/aggregate_taker.rb, line 29 def use_event_store(event_store) @event_store = event_store end
Protected Instance Methods
populate_defaults()
click to toggle source
@return [undefined]
# File lib/synapse/configuration/component/event_sourcing/snapshot/aggregate_taker.rb, line 36 def populate_defaults identified_by :snapshot_taker use_aggregate_factory_tag :aggregate_factory use_event_store :event_store use_factory do snapshot_taker = EventSourcing::AggregateSnapshotTaker.new snapshot_taker.event_store = resolve @event_store with_tagged @aggregate_factory_tag do |factory| snapshot_taker.register_factory factory end snapshot_taker end end