summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorBrice Figureau <brice-puppet@daysofwonder.com>2011-02-11 20:18:14 +0100
committerBrice Figureau <brice-puppet@daysofwonder.com>2011-02-11 20:18:14 +0100
commit48bc7d00ca87fa92cdde0b993529bba3827fa47e (patch)
tree8ed6537b2f6c4ddcf87ca04dfa00ff5a1e2a972a /lib/puppet
parent70a43c4b0d3018a39e29c50b1caf7dec38694323 (diff)
downloadpuppet-48bc7d00ca87fa92cdde0b993529bba3827fa47e.tar.gz
puppet-48bc7d00ca87fa92cdde0b993529bba3827fa47e.tar.xz
puppet-48bc7d00ca87fa92cdde0b993529bba3827fa47e.zip
Fix #6280 - puppetdoc crashing on string interpolation
The following manifest was crashing puppetdoc: class test { include "test::$operatingsystem" } Because the quoted string is "rendered" as a concat AST, which in turn ended being an array when entering RDoc. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
Diffstat (limited to 'lib/puppet')
-rw-r--r--lib/puppet/parser/ast/leaf.rb2
-rw-r--r--lib/puppet/util/rdoc/parser.rb4
2 files changed, 3 insertions, 3 deletions
diff --git a/lib/puppet/parser/ast/leaf.rb b/lib/puppet/parser/ast/leaf.rb
index fcdd219d7..77617e992 100644
--- a/lib/puppet/parser/ast/leaf.rb
+++ b/lib/puppet/parser/ast/leaf.rb
@@ -67,7 +67,7 @@ class Puppet::Parser::AST
end
def to_s
- "concat(#{@value.join(',')})"
+ "#{@value.map { |s| s.to_s.gsub(/^"(.*)"$/, '\1') }.join}"
end
end
diff --git a/lib/puppet/util/rdoc/parser.rb b/lib/puppet/util/rdoc/parser.rb
index f9becede1..f59af64f9 100644
--- a/lib/puppet/util/rdoc/parser.rb
+++ b/lib/puppet/util/rdoc/parser.rb
@@ -157,8 +157,8 @@ class Parser
if stmt.is_a?(Puppet::Parser::AST::Function) and ['include','require'].include?(stmt.name)
stmt.arguments.each do |included|
- Puppet.debug "found #{stmt.name}: #{included.value}"
- container.send("add_#{stmt.name}",Include.new(included.value, stmt.doc))
+ Puppet.debug "found #{stmt.name}: #{included}"
+ container.send("add_#{stmt.name}",Include.new(included.to_s, stmt.doc))
end
end
end