class Estore::Commands::ReadForward
Public Class Methods
new(connection, stream, from, batch_size = nil, &block)
click to toggle source
Calls superclass method
Estore::Commands::Command::new
# File lib/estore/commands/reads/forward.rb, line 9 def initialize(connection, stream, from, batch_size = nil, &block) super(connection) @stream = stream @from = from @batch_size = batch_size || 1000 @block = block @events = [] end
Public Instance Methods
batch_completed(response)
click to toggle source
# File lib/estore/commands/reads/forward.rb, line 39 def batch_completed(response) error = error(response) if error remove! promise.reject ReadEventsError.new(error) else keep_reading(response) end end
call()
click to toggle source
# File lib/estore/commands/reads/forward.rb, line 19 def call register! read(@stream, @from, @batch_size) promise end
keep_reading(response)
click to toggle source
# File lib/estore/commands/reads/forward.rb, line 25 def keep_reading(response) events = Array(response.events) @from += events.size read(@stream, @from, @batch_size) unless response.is_end_of_stream @block ? @block.call(events) : @events.push(*events) if response.is_end_of_stream remove! promise.fulfill(@block ? nil : @events) end end