class ReeArray::SplitBy
def call(array, value = nil, &block)
def call(array, value = nil, &block) arr = array.dup result = [] if block_given? while (idx = arr.index(&block)) result << arr.shift(idx) arr.shift end else while (idx = arr.index(value)) result << arr.shift(idx) arr.shift end end result << arr end