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