class Samovar::Flag
def initialize(text)
def initialize(text) @text = text if text =~ /(.*?)\s(\<.*?\>)/ @prefix = $1 @value = $2 else @prefix = @text @value = nil end *@alternatives, @prefix = @prefix.split('/') end
def key
def key @key ||= @prefix.sub(/^-*/, '').gsub('-', '_').to_sym end
def parse(input)
def parse(input) if prefix?(input.first) if @value input.shift(2).last else input.shift; key end end end
def prefix?(token)
def prefix?(token) @prefix == token or @alternatives.include?(token) end
def to_s
def to_s @text end