class Samovar::Split

def initialize(key, description, marker: '--', default: nil, required: false)

def initialize(key, description, marker: '--', default: nil, required: false)
	@key = key
	@description = description
	@marker = marker
	@default = default
	@required = required
end

def parse(input, parent = nil, default = nil)

def parse(input, parent = nil, default = nil)
	if offset = input.index(@marker)
		input.pop(input.size - offset).tap(&:shift)
	elsif default ||= @default
		return default
	elsif @required
		raise MissingValueError.new(parent, self)
	end
end

def to_a

def to_a
	usage = [to_s, @description]
	
	if @default
		usage << "(default: #{@default.inspect})"
	elsif @required
		usage << "(required)"
	end
	
	return usage
end

def to_s

def to_s
	"#{@marker} <#{@key}...>"
end