Method: Transformer::Lazy#drop_while

Defined in:
lib/coroutines/base.rb

#drop_while(&block) ⇒ Object



299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
# File 'lib/coroutines/base.rb', line 299

def drop_while(&block)
  Transformer.new do |y|
    yy = Yielder.new y
    dropping = true
    yy.define_yield do |*values|
      if dropping
        if not block.call(*values)
          dropping = false
          y.yield(*values)
        end
      else
        y.yield(*values)
      end
      yy
    end
    @trans.call yy
  end
end