Method: Pull::Drain#call

Defined in:
lib/pull/sink/drain.rb

#call(read, done = DEFAULT_DONE_CALLBACK) ⇒ Object

Raises:

  • (TypeError)


14
15
16
17
18
19
20
21
22
# 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