From 38ec9fcc5f3965942a74c8d7b7dfd1cf1796c0df Mon Sep 17 00:00:00 2001 From: Brice Figureau Date: Tue, 10 Nov 2009 18:19:59 +0100 Subject: 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 --- lib/puppet/parser/ast/leaf.rb | 4 ++++ lib/puppet/parser/ast/resourceparam.rb | 4 ++++ lib/puppet/parser/ast/selector.rb | 4 ++++ 3 files changed, 12 insertions(+) (limited to 'lib/puppet/parser') diff --git a/lib/puppet/parser/ast/leaf.rb b/lib/puppet/parser/ast/leaf.rb index 153120a34..b73c781e1 100644 --- a/lib/puppet/parser/ast/leaf.rb +++ b/lib/puppet/parser/ast/leaf.rb @@ -150,6 +150,10 @@ class Puppet::Parser::AST return scope.lookupvar(@value) end end + + def to_s + "\$#{value}" + end end class Regex < AST::Leaf diff --git a/lib/puppet/parser/ast/resourceparam.rb b/lib/puppet/parser/ast/resourceparam.rb index c552a7ee5..e6d9df17f 100644 --- a/lib/puppet/parser/ast/resourceparam.rb +++ b/lib/puppet/parser/ast/resourceparam.rb @@ -18,5 +18,9 @@ class Puppet::Parser::AST :add => self.add ) end + + def to_s + "#{@param} => #{@value.to_s}" + end end end diff --git a/lib/puppet/parser/ast/selector.rb b/lib/puppet/parser/ast/selector.rb index 1b05f57f0..84bc2a74a 100644 --- a/lib/puppet/parser/ast/selector.rb +++ b/lib/puppet/parser/ast/selector.rb @@ -41,5 +41,9 @@ class Puppet::Parser::AST ensure scope.unset_ephemeral_var end + + def to_s + param.to_s + " ? { " + values.collect { |v| v.to_s }.join(', ') + " }" + end end end -- cgit