Class: Toys::Flag::Syntax
- Inherits:
-
Object
- Object
- Toys::Flag::Syntax
- Defined in:
- lib/toys/flag.rb
Overview
Representation of a single flag.
Instance Attribute Summary collapse
-
#canonical_str ⇒ String
readonly
A canonical string representing this flag's syntax, normalized to match the type, delimiters, etc.
-
#flag_style ⇒ :long, :short
readonly
The style of flag (
:long
or:short
). -
#flag_type ⇒ :boolean, :value
readonly
The type of flag (
:boolean
or:value
). -
#flags ⇒ Array<String>
readonly
The flags (without values) corresponding to this syntax.
-
#negative_flag ⇒ String?
readonly
The flag (without values) corresponding to the "negative" form of this flag, if any.
-
#original_str ⇒ String
readonly
The original string that was parsed to produce this syntax.
-
#positive_flag ⇒ String
readonly
The flag (without values) corresponding to the normal "positive" form of this flag.
-
#sort_str ⇒ String
readonly
A string used to sort this flag compared with others.
-
#str_without_value ⇒ String
readonly
The original string with the value (if any) stripped, but retaining the
[no-]
prefix if present. -
#value_delim ⇒ String?
readonly
The default delimiter used for the value of this flag.
-
#value_label ⇒ String?
readonly
The default "label" for the value.
-
#value_type ⇒ :required, ...
readonly
The type of value (
:required
or:optional
).
Instance Method Summary collapse
-
#initialize(str) ⇒ Syntax
constructor
Parse flag syntax.
Constructor Details
#initialize(str) ⇒ Syntax
Parse flag syntax
456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 |
# File 'lib/toys/flag.rb', line 456 def initialize(str) case str when /\A(-([?\w]))\z/ setup(str, $1, nil, $1, $2, :short, nil, nil, nil, nil) when /\A(-([?\w]))(?:( ?)\[|\[( ))(\w+)\]\z/ setup(str, $1, nil, $1, $2, :short, :value, :optional, $3 || $4, $5) when /\A(-([?\w]))( ?)(\w+)\z/ setup(str, $1, nil, $1, $2, :short, :value, :required, $3, $4) when /\A--\[no-\](\w[?\w-]*)\z/ setup(str, "--#{$1}", "--no-#{$1}", str, $1, :long, :boolean, nil, nil, nil) when /\A(--(\w[?\w-]*))\z/ setup(str, $1, nil, $1, $2, :long, nil, nil, nil, nil) when /\A(--(\w[?\w-]*))(?:([= ])\[|\[([= ]))(\w+)\]\z/ setup(str, $1, nil, $1, $2, :long, :value, :optional, $3 || $4, $5) when /\A(--(\w[?\w-]*))([= ])(\w+)\z/ setup(str, $1, nil, $1, $2, :long, :value, :required, $3, $4) else raise ToolDefinitionError, "Illegal flag: #{str.inspect}" end end |
Instance Attribute Details
#canonical_str ⇒ String (readonly)
A canonical string representing this flag's syntax, normalized to match the type, delimiters, etc. settings of other flag syntaxes. This is generally used in help strings to represent this flag.
565 566 567 |
# File 'lib/toys/flag.rb', line 565 def canonical_str @canonical_str end |
#flag_style ⇒ :long, :short (readonly)
The style of flag (:long
or :short
).
526 527 528 |
# File 'lib/toys/flag.rb', line 526 def flag_style @flag_style end |
#flag_type ⇒ :boolean, :value (readonly)
The type of flag (:boolean
or :value
)
533 534 535 |
# File 'lib/toys/flag.rb', line 533 def flag_type @flag_type end |
#flags ⇒ Array<String> (readonly)
The flags (without values) corresponding to this syntax.
489 490 491 |
# File 'lib/toys/flag.rb', line 489 def flags @flags end |
#negative_flag ⇒ String? (readonly)
The flag (without values) corresponding to the "negative" form of this
flag, if any. i.e. if the original string was "--[no-]abc"
, the
negative flag is "--no-abc"
.
505 506 507 |
# File 'lib/toys/flag.rb', line 505 def negative_flag @negative_flag end |
#original_str ⇒ String (readonly)
The original string that was parsed to produce this syntax.
483 484 485 |
# File 'lib/toys/flag.rb', line 483 def original_str @original_str end |
#positive_flag ⇒ String (readonly)
The flag (without values) corresponding to the normal "positive" form of this flag.
496 497 498 |
# File 'lib/toys/flag.rb', line 496 def positive_flag @positive_flag end |
#sort_str ⇒ String (readonly)
A string used to sort this flag compared with others.
518 519 520 |
# File 'lib/toys/flag.rb', line 518 def sort_str @sort_str end |
#str_without_value ⇒ String (readonly)
The original string with the value (if any) stripped, but retaining
the [no-]
prefix if present.
512 513 514 |
# File 'lib/toys/flag.rb', line 512 def str_without_value @str_without_value end |
#value_delim ⇒ String? (readonly)
The default delimiter used for the value of this flag. This could be
""
or " "
for a short flag, or " "
or "="
for a long flag.
549 550 551 |
# File 'lib/toys/flag.rb', line 549 def value_delim @value_delim end |
#value_label ⇒ String? (readonly)
The default "label" for the value. e.g. in --abc=VAL
the label is
"VAL"
.
557 558 559 |
# File 'lib/toys/flag.rb', line 557 def value_label @value_label end |
#value_type ⇒ :required, ... (readonly)
The type of value (:required
or :optional
)
541 542 543 |
# File 'lib/toys/flag.rb', line 541 def value_type @value_type end |