class Synapse::Domain::SimpleDomainEventStream

Implementation of a domain event stream that holds a stream of events in memory

Public Class Methods

new(*events) click to toggle source

@param [EventMessage…] events @return [undefined]

# File lib/synapse/domain/simple_stream.rb, line 7
def initialize(*events)
  @events = events.flatten
  @next_index = 0
end

Public Instance Methods

end?() click to toggle source

@api public @return [Boolean]

# File lib/synapse/domain/simple_stream.rb, line 14
def end?
  @next_index >= @events.size
end
next_event() click to toggle source

@api public @raise [EndOfStreamError] If the end of the stream has been reached @return [DomainEventMessage]

# File lib/synapse/domain/simple_stream.rb, line 21
def next_event
  assert_valid

  event = @events.at @next_index
  @next_index += 1

  event
end
peek() click to toggle source

@api public @raise [EndOfStreamError] If the end of the stream has been reached @return [DomainEventMessage]

# File lib/synapse/domain/simple_stream.rb, line 33
def peek
  assert_valid
  @events.at @next_index
end