class Kangaru::ArgumentParser

def grouped_argument_tokens

def grouped_argument_tokens
  tokens.slice_before(/^-/).to_a
end

def initialize(*tokens)

def initialize(*tokens)
  @tokens = tokens
end

def parse

def parse
  grouped_argument_tokens.to_h do |tokens|
    key   = parse_key(tokens.shift || raise)
    value = parse_value(tokens)
    [key, value]
  end
end

def parse_key(key)

def parse_key(key)
  key.gsub(/^-+/, "").to_snakecase.to_sym
end

def parse_value(tokens)

def parse_value(tokens)
  tokens.empty? || tokens.join(" ")
end