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