Class: EacCli::Definition::Alternative
- Defined in:
- lib/eac_cli/definition/alternative.rb
Constant Summary collapse
- SUBCOMMAND_NAME_ARG =
:subcommand- SUBCOMMAND_ARGS_ARG =
:subcommand_args
Instance Method Summary collapse
- #arg_opt(*args) ⇒ Object
- #bool_opt(*args) ⇒ Object
- #options ⇒ Object
- #options_argument(enable) ⇒ Object
- #options_argument? ⇒ Boolean
- #pos_arg(name, arg_options = {}) ⇒ Object
- #positional ⇒ Object
- #positional_arguments_blocked_reason(new_pos_arg) ⇒ Object
- #subcommands ⇒ Object
- #subcommands? ⇒ Boolean
Instance Method Details
#arg_opt(*args) ⇒ Object
13 14 15 |
# File 'lib/eac_cli/definition/alternative.rb', line 13 def arg_opt(*args) << ::EacCli::Definition::ArgumentOption.from_args(args) end |
#bool_opt(*args) ⇒ Object
17 18 19 |
# File 'lib/eac_cli/definition/alternative.rb', line 17 def bool_opt(*args) << ::EacCli::Definition::BooleanOption.from_args(args) end |
#options ⇒ Object
21 22 23 |
# File 'lib/eac_cli/definition/alternative.rb', line 21 def .to_a end |
#options_argument(enable) ⇒ Object
29 30 31 32 33 |
# File 'lib/eac_cli/definition/alternative.rb', line 29 def (enable) = enable self end |
#options_argument? ⇒ Boolean
25 26 27 |
# File 'lib/eac_cli/definition/alternative.rb', line 25 def ? true : false end |
#pos_arg(name, arg_options = {}) ⇒ Object
35 36 37 38 39 |
# File 'lib/eac_cli/definition/alternative.rb', line 35 def pos_arg(name, = {}) new_pos_arg = ::EacCli::Definition::PositionalArgument.new(name, ) check_positional_blocked(new_pos_arg) pos_set << new_pos_arg end |
#positional ⇒ Object
41 42 43 |
# File 'lib/eac_cli/definition/alternative.rb', line 41 def positional pos_set.to_a end |
#positional_arguments_blocked_reason(new_pos_arg) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/eac_cli/definition/alternative.rb', line 45 def positional_arguments_blocked_reason(new_pos_arg) last = pos_set.last return nil unless last return 'there are subcommands' if subcommands? return 'last argument repeats' if last.repeat? return 'new argument is required and last is optional' if last.optional? && new_pos_arg.if_present(&:required?) nil end |
#subcommands ⇒ Object
56 57 58 59 60 |
# File 'lib/eac_cli/definition/alternative.rb', line 56 def subcommands pos_arg(SUBCOMMAND_NAME_ARG, subcommand: true) pos_set << ::EacCli::Definition::PositionalArgument.new(SUBCOMMAND_ARGS_ARG, optional: true, repeat: true) end |
#subcommands? ⇒ Boolean
62 63 64 |
# File 'lib/eac_cli/definition/alternative.rb', line 62 def subcommands? pos_set.any?(&:subcommand?) end |