summaryrefslogtreecommitdiffstats
path: root/lib/puppet/util/rdoc
diff options
context:
space:
mode:
authorBrice Figureau <brice-puppet@daysofwonder.com>2009-11-10 18:19:59 +0100
committerJames Turnbull <james@lovedthanlost.net>2009-11-12 08:08:04 +1100
commit53be6f81261db1b7a022ec683e1a637cd2c5c93e (patch)
tree3bca7ea658e44d09dd989f0ef1047b570708ab8a /lib/puppet/util/rdoc
parent391786f0b43e514d58336f465bc53fb7a5c34884 (diff)
downloadpuppet-53be6f81261db1b7a022ec683e1a637cd2c5c93e.tar.gz
puppet-53be6f81261db1b7a022ec683e1a637cd2c5c93e.tar.xz
puppet-53be6f81261db1b7a022ec683e1a637cd2c5c93e.zip
Fix #2796 - Fix puppetdoc rdoc selector parsing
This patch fix this bug by adding more to_s methods to ast member so that puppetdoc can just to_s the AST to reconstruct the original puppet code. Of course this is not perfect, but should work most of the time. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
Diffstat (limited to 'lib/puppet/util/rdoc')
-rw-r--r--lib/puppet/util/rdoc/parser.rb9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/puppet/util/rdoc/parser.rb b/lib/puppet/util/rdoc/parser.rb
index 61c08b464..416711d59 100644
--- a/lib/puppet/util/rdoc/parser.rb
+++ b/lib/puppet/util/rdoc/parser.rb
@@ -274,12 +274,15 @@ class Parser
declaration = ""
define.arguments.each do |arg,value|
declaration << "\$#{arg}"
- if !value.nil?
+ unless value.nil?
declaration << " => "
- if !value.is_a?(Puppet::Parser::AST::ASTArray)
+ case value
+ when Puppet::Parser::AST::Leaf
declaration << "'#{value.value}'"
- else
+ when Puppet::Parser::AST::ASTArray
declaration << "[%s]" % value.children.collect { |v| "'#{v}'" }.join(", ")
+ else
+ declaration << "#{value.to_s}"
end
end
declaration << ", "