class EventStore::Util

Public Class Methods

poll(eventstore, stream, start_at=0, set_size=100, sleep_time=10) click to toggle source
# File lib/eventstore/client.rb, line 53
def self.poll eventstore, stream, start_at=0, set_size=100, sleep_time=10
  Enumerator.new do |yielder|
    last_start_at = nil
    begin
      loop do
        if last_start_at == start_at
          sleep sleep_time
        end
        last_start_at = start_at
        events = eventstore.resume_read(stream, start_at, set_size).drop(1)
        events.each do |event|
          yielder << event
          start_at = event[:id]
        end
      end
    end
  end
end