class EsHttpClient::CaughtUpStream

Public Class Methods

new(ref, connection) click to toggle source
# File lib/es_http_client/caught_up_stream.rb, line 8
def initialize(ref, connection)
  @ref = ref
  @connection = connection
end

Public Instance Methods

fetch(ref, &block) click to toggle source
# File lib/es_http_client/caught_up_stream.rb, line 20
def fetch(ref, &block)
  response = @connection.get(ref.uri, ref.etag)
  page = Page.new(response.body)
  next_uri = ref.uri
  if page.has_entries?
    page.each_event(&block)
    next_uri = page.previous
  end
  return Ref.new(next_uri, response.headers['etag'])
end
subscribe(&block) click to toggle source
# File lib/es_http_client/caught_up_stream.rb, line 13
def subscribe(&block)
  loop do
    sleep 1
    @ref = fetch(@ref, &block)
  end
end