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