class NoBrainer::QueryRunner::EMDriver::ResponseHandler::Cursor
Public Class Methods
new(handler, queue)
click to toggle source
# File lib/no_brainer/query_runner/em_driver.rb, line 103 def initialize(handler, queue) @handler = handler @queue = queue end
Public Instance Methods
close()
click to toggle source
# File lib/no_brainer/query_runner/em_driver.rb, line 108 def close @handler.close_query_handle end
each(&block)
click to toggle source
# File lib/no_brainer/query_runner/em_driver.rb, line 112 def each(&block) return enum_for(:each) unless block raise "Can only iterate over a cursor once." if @iterated @iterated = true loop do case result = NoBrainer::QueryRunner::EMDriver.sync { |w| @queue.pop(&w) } when :close then return self when Exception then raise result else result.each { |v| block.call(v) } end end end