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?(new_pos_arg) ⇒ Boolean
- #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) @options_argument = enable self end |
#options_argument? ⇒ Boolean
25 26 27 |
# File 'lib/eac_cli/definition/alternative.rb', line 25 def @options_argument ? 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?(new_pos_arg) ⇒ Boolean
45 46 47 48 49 50 51 52 53 |
# File 'lib/eac_cli/definition/alternative.rb', line 45 def positional_arguments_blocked?(new_pos_arg) last = pos_set.last return false unless last return true if subcommands? return true if last.repeat? return true if last.optional? && new_pos_arg.if_present(&:required?) false end |
#subcommands ⇒ Object
55 56 57 58 59 |
# File 'lib/eac_cli/definition/alternative.rb', line 55 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
61 62 63 |
# File 'lib/eac_cli/definition/alternative.rb', line 61 def subcommands? pos_set.any?(&:subcommand?) end |