Class: EacCli::Docopt::DocBuilder::Alternative

Inherits:
Object
  • Object
show all
Defined in:
lib/eac_cli/docopt/doc_builder/alternative.rb

Instance Method Summary collapse

Instance Method Details

#option_argument(option) ⇒ Object



27
28
29
30
31
# File 'lib/eac_cli/docopt/doc_builder/alternative.rb', line 27

def option_argument(option)
  b = option.long
  b += '=<value>' if option.argument?
  b
end

#optionsObject



21
22
23
24
25
# File 'lib/eac_cli/docopt/doc_builder/alternative.rb', line 21

def options
  alternative.options.select(&:show_on_usage?).map do |option|
    ::EacCli::Docopt::DocBuilder.option_long(option)
  end
end

#positional(positional) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/eac_cli/docopt/doc_builder/alternative.rb', line 37

def positional(positional)
  return unless positional.visible?

  if positional.subcommand?
    ::EacCli::DocoptRunner::SUBCOMMANDS_MACRO
  else
    r = "<#{positional.name}>"
    r += '...' if positional.repeat?
    r = "[#{r}]" if positional.optional?
    r
  end
end

#positionalsObject



33
34
35
# File 'lib/eac_cli/docopt/doc_builder/alternative.rb', line 33

def positionals
  alternative.positional.map { |p| positional(p) }.reject(&:blank?)
end

#to_sObject



12
13
14
15
16
17
18
19
# File 'lib/eac_cli/docopt/doc_builder/alternative.rb', line 12

def to_s
  (
    [::EacCli::DocoptRunner::PROGRAM_MACRO] +
      alternative.options_argument?.if_present([]) { |_v| ['[options]'] } +
      options +
      positionals
  ).join(::EacCli::Docopt::DocBuilder::SEP)
end