Module: Clamp::Help

Included in:
Command
Defined in:
lib/clamp/help.rb

Defined Under Namespace

Classes: Builder

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#declared_usage_descriptionsObject (readonly)

Returns the value of attribute declared_usage_descriptions.



13
14
15
# File 'lib/clamp/help.rb', line 13

def declared_usage_descriptions
  @declared_usage_descriptions
end

#descriptionObject

Returns the value of attribute description.



28
29
30
# File 'lib/clamp/help.rb', line 28

def description
  @description
end

Instance Method Details



24
25
26
# File 'lib/clamp/help.rb', line 24

def banner(description)
  self.description = description
end

#derived_usage_descriptionObject



30
31
32
33
34
# File 'lib/clamp/help.rb', line 30

def derived_usage_description
  parts = ["[OPTIONS]"]
  parts += parameters.map { |a| a.name }
  parts.join(" ")
end

#help(invocation_path, builder = Builder.new) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/clamp/help.rb', line 40

def help(invocation_path, builder = Builder.new)
  help = builder
  help.add_usage(invocation_path, usage_descriptions)
  help.add_description(description)
  if has_parameters?
    help.add_list(Clamp.message(:parameters_heading), parameters)
  end
  if has_subcommands?
    help.add_list(Clamp.message(:subcommands_heading), recognised_subcommands)
  end
  help.add_list(Clamp.message(:options_heading), recognised_options)
  help.string
end

#usage(usage) ⇒ Object



8
9
10
11
# File 'lib/clamp/help.rb', line 8

def usage(usage)
  @declared_usage_descriptions ||= []
  @declared_usage_descriptions << usage
end

#usage_descriptionsObject



36
37
38
# File 'lib/clamp/help.rb', line 36

def usage_descriptions
  declared_usage_descriptions || [derived_usage_description]
end