Class: EacCli::Definition::HelpFormatter
- Defined in:
- lib/eac_cli/definition/help_formatter.rb
Constant Summary collapse
Class Method Summary collapse
Instance Method Summary collapse
- #positional_argument(positional) ⇒ Object
- #section(header, include_header = true) ⇒ Object
- #self_options ⇒ Object
- #self_usage ⇒ Object
- #self_usage_arguments ⇒ Object
- #self_usage_arguments_options ⇒ Object
- #self_usage_arguments_positional ⇒ Object
- #to_banner ⇒ Object
Class Method Details
.option_long(option) ⇒ Object
14 15 16 17 18 |
# File 'lib/eac_cli/definition/help_formatter.rb', line 14 def option_long(option) b = option.long b += '=VALUE' if option.argument? b end |
.option_short(option) ⇒ Object
20 21 22 23 24 |
# File 'lib/eac_cli/definition/help_formatter.rb', line 20 def option_short(option) b = option.short b += 'VALUE' if option.argument? b end |
Instance Method Details
#positional_argument(positional) ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/eac_cli/definition/help_formatter.rb', line 29 def positional_argument(positional) if positional.subcommand? ::EacCli::RunnerWith::Help::Builder::Alternative::SUBCOMMANDS_MACRO else r = "<#{positional.name}>" r += '...' if positional.repeat? r = "[#{r}]" if positional.optional? r end end |
#section(header, include_header = true) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/eac_cli/definition/help_formatter.rb', line 40 def section(header, include_header = true) b = include_header ? "#{header.humanize}:\n" : '' b += send("self_#{header}") + "\n" # TO-DO: implement alternatives b end |
#self_options ⇒ Object
47 48 49 |
# File 'lib/eac_cli/definition/help_formatter.rb', line 47 def definition..map { |option| IDENT + option_definition(option) }.join("\n") end |
#self_usage ⇒ Object
51 52 53 |
# File 'lib/eac_cli/definition/help_formatter.rb', line 51 def self_usage IDENT + self_usage_arguments.join(SEP) end |
#self_usage_arguments ⇒ Object
55 56 57 58 59 60 |
# File 'lib/eac_cli/definition/help_formatter.rb', line 55 def self_usage_arguments [::EacCli::RunnerWith::Help::Builder::Alternative::PROGRAM_MACRO] + definition..if_present([]) { |_v| ['[options]'] } + + self_usage_arguments_positional end |
#self_usage_arguments_options ⇒ Object
62 63 64 65 66 |
# File 'lib/eac_cli/definition/help_formatter.rb', line 62 def definition..select(&:show_on_usage?).map do |option| self.class.option_long(option) end end |
#self_usage_arguments_positional ⇒ Object
68 69 70 |
# File 'lib/eac_cli/definition/help_formatter.rb', line 68 def self_usage_arguments_positional definition.positional.map { |p| positional_argument(p) } end |
#to_banner ⇒ Object
72 73 74 |
# File 'lib/eac_cli/definition/help_formatter.rb', line 72 def "#{definition.description}\n\n#{section('usage')}" end |