class Synapse::EventSourcing::CapturingEventStream

Event stream decorator that captures any events that have been applied after the expected version of an aggregate

Public Class Methods

new(delegate, unseen_events, expected_version) click to toggle source

@param [DomainEventStream] delegate @param [Array] unseen_events @param [Integer] expected_version @return [undefined]

# File lib/synapse/event_sourcing/conflict_resolver.rb, line 73
def initialize(delegate, unseen_events, expected_version)
  @delegate = delegate
  @unseen_events = unseen_events
  @expected_version = expected_version
end

Public Instance Methods

next_event() click to toggle source

@return [DomainEventMessage]

# File lib/synapse/event_sourcing/conflict_resolver.rb, line 80
def next_event
  @delegate.next_event.tap do |event|
    if @expected_version and event.sequence_number > @expected_version
      @unseen_events.push event
    end
  end
end