class Pull::Drain
Constants
- DEFAULT_DONE_CALLBACK
Attributes
block[R]
Public Class Methods
new(&block)
click to toggle source
# File lib/pull/sink/drain.rb, line 9 def initialize(&block) @block = block @continuing = true end
Public Instance Methods
call(read, done = DEFAULT_DONE_CALLBACK)
click to toggle source
# File lib/pull/sink/drain.rb, line 14 def call(read, done = DEFAULT_DONE_CALLBACK) raise TypeError unless read.respond_to?(:call) while @continuing return done.() && break if !@continuing @continuing = read.(nil, -> (value) { block.call(value) }) end end