Class: Toys::Flag::Syntax
- Inherits:
-
Object
- Object
- Toys::Flag::Syntax
- Defined in:
- toys-core/lib/toys/flag.rb
Overview
Defined in the toys-core gem
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
460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 |
# File 'toys-core/lib/toys/flag.rb', line 460 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.
569 570 571 |
# File 'toys-core/lib/toys/flag.rb', line 569 def canonical_str @canonical_str end |
#flag_style ⇒ :long, :short (readonly)
The style of flag (:long
or :short
).
530 531 532 |
# File 'toys-core/lib/toys/flag.rb', line 530 def flag_style @flag_style end |
#flag_type ⇒ :boolean, :value (readonly)
The type of flag (:boolean
or :value
)
537 538 539 |
# File 'toys-core/lib/toys/flag.rb', line 537 def flag_type @flag_type end |
#flags ⇒ Array<String> (readonly)
The flags (without values) corresponding to this syntax.
493 494 495 |
# File 'toys-core/lib/toys/flag.rb', line 493 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"
.
509 510 511 |
# File 'toys-core/lib/toys/flag.rb', line 509 def negative_flag @negative_flag end |
#original_str ⇒ String (readonly)
The original string that was parsed to produce this syntax.
487 488 489 |
# File 'toys-core/lib/toys/flag.rb', line 487 def original_str @original_str end |
#positive_flag ⇒ String (readonly)
The flag (without values) corresponding to the normal "positive" form of this flag.
500 501 502 |
# File 'toys-core/lib/toys/flag.rb', line 500 def positive_flag @positive_flag end |
#sort_str ⇒ String (readonly)
A string used to sort this flag compared with others.
522 523 524 |
# File 'toys-core/lib/toys/flag.rb', line 522 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.
516 517 518 |
# File 'toys-core/lib/toys/flag.rb', line 516 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.
553 554 555 |
# File 'toys-core/lib/toys/flag.rb', line 553 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"
.
561 562 563 |
# File 'toys-core/lib/toys/flag.rb', line 561 def value_label @value_label end |
#value_type ⇒ :required, ... (readonly)
The type of value (:required
or :optional
)
545 546 547 |
# File 'toys-core/lib/toys/flag.rb', line 545 def value_type @value_type end |