class Samovar::BooleanFlag

Represents a boolean flag with ‘–flag` and `–no-flag` variants.

def initialize(text, prefix, value = nil)

@parameter value [Object | Nil] Reserved for future use.
@parameter prefix [String] The primary flag prefix (e.g., `--flag`).
@parameter text [String] The full flag specification text.

Initialize a new boolean flag.
def initialize(text, prefix, value = nil)
	super(text, prefix)
	
	@value = value
	
	@negated = @prefix.sub(/^--/, "--no-")
	@alternatives = [@negated]
end

def parse(input)

@returns [Boolean | Nil] True, false, or nil.
@parameter input [Array(String)] The command-line arguments.

Parse this flag from the input.
def parse(input)
	if input.first == @prefix
		input.shift
		return true
	elsif input.first == @negated
		input.shift
		return false
	end
end

def prefix?(token)

@returns [Boolean] True if the token matches.
@parameter token [String] The token to check.

Check if the token matches this flag.
def prefix?(token)
	@prefix == token or @negated == token
end