SamovarSourceSamovarBooleanFlag

class BooleanFlag

Represents a boolean flag with --flag and --no-flag variants.

Definitions

def initialize(text, prefix, value = nil)

Initialize a new boolean flag.

Signature

parameter text String

The full flag specification text.

parameter prefix String

The primary flag prefix (e.g., --flag).

parameter value Object | Nil

Reserved for future use.

Implementation

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

def prefix?(token)

Check if the token matches this flag.

Signature

parameter token String

The token to check.

returns Boolean

True if the token matches.

Implementation

def prefix?(token)
	@prefix == token or @negated == token
end

def parse(input)

Parse this flag from the input.

Signature

parameter input Array(String)

The command-line arguments.

returns Boolean | Nil

True, false, or nil.

Implementation

def parse(input)
	if input.first == @prefix
		input.shift
		return true
	elsif input.first == @negated
		input.shift
		return false
	end
end