# File activesupport/lib/active_support/core_ext/array/grouping.rb, line 91
def split(value = nil)
if block_given?
inject([[]]) do |results, element|
if yield(element)
results << []
else
results.last << element
end
results
end
else
results, arr = [[]], self.dup
until arr.empty?
if (idx = arr.index(value))
results.last.concat(arr.shift(idx))
arr.shift
results << []
else
results.last.concat(arr.shift(arr.size))
end
end
results
end
end