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 --- spec/unit/parser/ast/leaf.rb | 9 +++++++++ spec/unit/parser/ast/selector.rb | 9 ++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) (limited to 'spec/unit/parser') diff --git a/spec/unit/parser/ast/leaf.rb b/spec/unit/parser/ast/leaf.rb index e9681503d..fecfba386 100755 --- a/spec/unit/parser/ast/leaf.rb +++ b/spec/unit/parser/ast/leaf.rb @@ -72,6 +72,15 @@ describe Puppet::Parser::AST::String do end end +describe Puppet::Parser::AST::Variable do + describe "when converting to string" do + it "should transform its value to a variable" do + value = stub 'value', :is_a? => true, :to_s => "myvar" + Puppet::Parser::AST::Variable.new( :value => value ).to_s.should == "\$myvar" + end + end +end + describe Puppet::Parser::AST::Regex do before :each do @scope = stub 'scope' diff --git a/spec/unit/parser/ast/selector.rb b/spec/unit/parser/ast/selector.rb index 8b0057784..2ba83ad7b 100755 --- a/spec/unit/parser/ast/selector.rb +++ b/spec/unit/parser/ast/selector.rb @@ -151,6 +151,13 @@ describe Puppet::Parser::AST::Selector do @selector.evaluate(@scope) end end - + end + describe "when converting to string" do + it "should produce a string version of this selector" do + values = Puppet::Parser::AST::ASTArray.new :children => [ Puppet::Parser::AST::ResourceParam.new(:param => "type", :value => "value", :add => false) ] + param = Puppet::Parser::AST::Variable.new :value => "myvar" + selector = Puppet::Parser::AST::Selector.new :param => param, :values => values + selector.to_s.should == "$myvar ? { type => value }" + end end end -- cgit