class Thor::Arguments

def self.split(args)


and one with switches.
Receives an array of args and returns two arrays, one with arguments
def self.split(args)
  arguments = []
  args.each do |item|
    break if item.is_a?(String) && item =~ /^-/
    arguments << item
  end
  [arguments, args[Range.new(arguments.size, -1)]]
end