# File lib/backports/2.2.0/enumerable/slice_when.rb, line 6 def slice_when(&block) raise ArgumentError, 'tried to create Proc object without a block' unless block enum = self Enumerator.new do |y| acc = [] prev = Backports::Undefined enum.each do |*elem| elem = elem.first if elem.length == 1 unless prev == Backports::Undefined if block.call(prev, elem) y.yield acc acc = [] end end acc << elem prev = elem end y.yield acc unless acc.empty? end end