summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDaniel Pittman <daniel@puppetlabs.com>2011-06-07 16:52:39 -0700
committerDaniel Pittman <daniel@puppetlabs.com>2011-06-07 16:52:39 -0700
commit0ae4732fd9058c2ae67f664c545dbd1846cef2df (patch)
tree443b28b20b8b8b25f133c20853aaff41cc2c8c25 /lib
parentb4e9791df5c01183ff037a346361ed3667e67552 (diff)
downloadpuppet-0ae4732fd9058c2ae67f664c545dbd1846cef2df.tar.gz
puppet-0ae4732fd9058c2ae67f664c545dbd1846cef2df.tar.xz
puppet-0ae4732fd9058c2ae67f664c545dbd1846cef2df.zip
(#7828) Fix whitespace in synopsis generator.
We accidentally omitted whitespace between multiple options while building the synopsis. This fixes that, by introducing a breakable space in the right location. Additionally, we extract the code that was 99 percent identical from the face and action synopsis generators, push it down into the documentation module, and then invoke it from both places. This eliminates the duplicate code, allowing me to fix that bug once and have it apply to both parts of the code; this is pretty much assured to be true any time we change the synopsis generation. Reviewed-By: Nick Fagerlund <nick.fagerlund@puppetlabs.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/interface.rb21
-rw-r--r--lib/puppet/interface/action.rb23
-rw-r--r--lib/puppet/interface/documentation.rb31
3 files changed, 33 insertions, 42 deletions
diff --git a/lib/puppet/interface.rb b/lib/puppet/interface.rb
index 10e2ec8d7..6be8b6930 100644
--- a/lib/puppet/interface.rb
+++ b/lib/puppet/interface.rb
@@ -76,26 +76,7 @@ class Puppet::Interface
# splits out this should merge into a module that both the action and face
# include. --daniel 2011-04-17
def synopsis
- output = PrettyPrint.format do |s|
- s.text("puppet #{name} <action>")
- s.breakable
-
- options.each do |option|
- option = get_option(option)
- wrap = option.required? ? %w{ < > } : %w{ [ ] }
-
- s.group(0, *wrap) do
- option.optparse.each do |item|
- unless s.current_group.first?
- s.breakable
- s.text '|'
- s.breakable
- end
- s.text item
- end
- end
- end
- end
+ build_synopsis self.name, '<action>'
end
diff --git a/lib/puppet/interface/action.rb b/lib/puppet/interface/action.rb
index 748888c2e..185302b07 100644
--- a/lib/puppet/interface/action.rb
+++ b/lib/puppet/interface/action.rb
@@ -48,28 +48,7 @@ class Puppet::Interface::Action
attr_doc :returns
attr_doc :arguments
def synopsis
- output = PrettyPrint.format do |s|
- s.text("puppet #{@face.name}")
- s.text(" #{name}") unless default?
- s.breakable
-
- options.each do |option|
- option = get_option(option)
- wrap = option.required? ? %w{ < > } : %w{ [ ] }
-
- s.group(0, *wrap) do
- option.optparse.each do |item|
- unless s.current_group.first?
- s.breakable
- s.text '|'
- s.breakable
- end
- s.text item
- end
- end
- end
- s.text(" #{arguments}") if arguments
- end
+ build_synopsis(@face.name, default? ? nil : name, arguments)
end
########################################################################
diff --git a/lib/puppet/interface/documentation.rb b/lib/puppet/interface/documentation.rb
index fcaec2568..47e478a44 100644
--- a/lib/puppet/interface/documentation.rb
+++ b/lib/puppet/interface/documentation.rb
@@ -61,6 +61,37 @@ class Puppet::Interface
end
attr_doc :description
+
+ def build_synopsis(face, action = nil, arguments = nil)
+ output = PrettyPrint.format do |s|
+ s.text("puppet #{face}")
+ s.text(" #{action}") unless action.nil?
+ s.text(" ")
+
+ options.each do |option|
+ option = get_option(option)
+ wrap = option.required? ? %w{ < > } : %w{ [ ] }
+
+ s.group(0, *wrap) do
+ option.optparse.each do |item|
+ unless s.current_group.first?
+ s.breakable
+ s.text '|'
+ s.breakable
+ end
+ s.text item
+ end
+ end
+
+ s.breakable
+ end
+
+ if arguments then
+ s.text arguments.to_s
+ end
+ end
+ end
+
end
module FullDocs