Class: Lino::SubcommandBuilder
- Inherits:
-
Object
- Object
- Lino::SubcommandBuilder
- Includes:
- Appliables, Options, Utilities
- Defined in:
- lib/lino/subcommand_builder.rb
Class Method Summary collapse
Instance Method Summary collapse
- #build(option_separator, option_quoting) ⇒ Object
-
#initialize(subcommand: nil, options: []) ⇒ SubcommandBuilder
constructor
A new instance of SubcommandBuilder.
Methods included from Appliables
#with_appliable, #with_appliables
Methods included from Utilities
#empty?, #join_with, #map_and_join, #nil?, #nil_or_empty?, #quote_with
Methods included from Options
#with_flag, #with_flags, #with_option, #with_options, #with_repeated_option
Constructor Details
#initialize(subcommand: nil, options: []) ⇒ SubcommandBuilder
Returns a new instance of SubcommandBuilder.
20 21 22 23 |
# File 'lib/lino/subcommand_builder.rb', line 20 def initialize(subcommand: nil, options: []) @subcommand = subcommand @options = Hamster::Vector.new() end |
Class Method Details
.for_subcommand(subcommand) ⇒ Object
15 16 17 |
# File 'lib/lino/subcommand_builder.rb', line 15 def for_subcommand(subcommand) SubcommandBuilder.new(subcommand: subcommand) end |
Instance Method Details
#build(option_separator, option_quoting) ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/lino/subcommand_builder.rb', line 25 def build(option_separator, option_quoting) components = [ @subcommand, map_and_join( @options, &(quote_with(option_quoting) >> join_with(option_separator)) ) ] components.reject(&:empty?).join(' ') end |