class Gapic::StreamInput
Manages requests for an input stream and holds the stream open until {#close} is called.
Public Class Methods
new(*requests)
click to toggle source
Create a new input stream object to manage streaming requests and hold the stream open until {#close} is called.
@param requests [Object]
# File lib/gapic/stream_input.rb, line 25 def initialize *requests @queue = Queue.new # Push initial requests into the queue requests.each { |request| @queue.push request } end
Public Instance Methods
close()
click to toggle source
Closes the stream.
@return [StreamInput] Returns self.
# File lib/gapic/stream_input.rb, line 52 def close @queue.push self self end
push(request)
click to toggle source
Adds a request object to the stream.
@param request [Object]
@return [StreamInput] Returns self.
# File lib/gapic/stream_input.rb, line 39 def push request @queue.push request self end
to_enum() { |request| ... }
click to toggle source
@private Iterates the requests given to the stream.
@yield [request] The block for accessing each request. @yieldparam [Object] request The request object.
@return [Enumerator] An Enumerator is returned if no block is given.
# File lib/gapic/stream_input.rb, line 67 def to_enum return enum_for :to_enum unless block_given? loop do request = @queue.pop break if request.equal? self yield request end end