diff options
author | Jesse Wolfe <jes5199@gmail.com> | 2010-10-04 16:31:30 -0700 |
---|---|---|
committer | Jesse Wolfe <jes5199@gmail.com> | 2010-10-04 21:46:49 -0700 |
commit | 163ec172e06a2b8aab9f9c9247dd45bc0dea3f72 (patch) | |
tree | a5534dcd95a260d134a3e746efaab447a30ba847 | |
parent | c9592f048331d7728d42f55cb29f5748ec9b1a67 (diff) | |
parent | 574812ef00e6681fce88bd1e66bbc07e7ade4b41 (diff) | |
download | puppet-163ec172e06a2b8aab9f9c9247dd45bc0dea3f72.tar.gz puppet-163ec172e06a2b8aab9f9c9247dd45bc0dea3f72.tar.xz puppet-163ec172e06a2b8aab9f9c9247dd45bc0dea3f72.zip |
Partial merge to 2.6.2rc1 : Merge commit '574812e' into next
The API for AST objects has changed, making the initialization of this
spec somewhat more complicated.
Also, git seems to have been confused by whitespace changes.
Manually Resolved Conflicts:
lib/puppet/parser/ast/resource.rb
-rw-r--r-- | lib/puppet/parser/ast/resource.rb | 1 | ||||
-rw-r--r-- | lib/puppet/util/rdoc/parser.rb | 22 | ||||
-rwxr-xr-x | spec/unit/util/rdoc/parser_spec.rb | 34 |
3 files changed, 33 insertions, 24 deletions
diff --git a/lib/puppet/parser/ast/resource.rb b/lib/puppet/parser/ast/resource.rb index 23207149f..bd15d9935 100644 --- a/lib/puppet/parser/ast/resource.rb +++ b/lib/puppet/parser/ast/resource.rb @@ -50,7 +50,6 @@ class Resource < AST::Branch :virtual => virt, :source => scope.source, :scope => scope, - :strict => true ) diff --git a/lib/puppet/util/rdoc/parser.rb b/lib/puppet/util/rdoc/parser.rb index aca66163c..ce34442ab 100644 --- a/lib/puppet/util/rdoc/parser.rb +++ b/lib/puppet/util/rdoc/parser.rb @@ -207,19 +207,21 @@ class Parser if stmt.is_a?(Puppet::Parser::AST::Resource) and !stmt.type.nil? begin type = stmt.type.split("::").collect { |s| s.capitalize }.join("::") - title = stmt.title.is_a?(Puppet::Parser::AST::ASTArray) ? stmt.title.to_s.gsub(/\[(.*)\]/,'\1') : stmt.title.to_s - Puppet.debug "rdoc: found resource: #{type}[#{title}]" + stmt.instances.each do |inst| + title = inst.title.is_a?(Puppet::Parser::AST::ASTArray) ? inst.title.to_s.gsub(/\[(.*)\]/,'\1') : inst.title.to_s + Puppet.debug "rdoc: found resource: #{type}[#{title}]" - param = [] - stmt.params.children.each do |p| - res = {} - res["name"] = p.param - res["value"] = "#{p.value.to_s}" unless p.value.nil? + param = [] + inst.parameters.children.each do |p| + res = {} + res["name"] = p.param + res["value"] = "#{p.value.to_s}" unless p.value.nil? - param << res - end + param << res + end - container.add_resource(PuppetResource.new(type, title, stmt.doc, param)) + container.add_resource(PuppetResource.new(type, title, stmt.doc, param)) + end rescue => detail raise Puppet::ParseError, "impossible to parse resource in #{stmt.file} at line #{stmt.line}: #{detail}" end diff --git a/spec/unit/util/rdoc/parser_spec.rb b/spec/unit/util/rdoc/parser_spec.rb index 7809c75a3..04713f293 100755 --- a/spec/unit/util/rdoc/parser_spec.rb +++ b/spec/unit/util/rdoc/parser_spec.rb @@ -342,10 +342,12 @@ describe RDoc::Parser do def create_stmt(name) stmt_value = stub "#{name}_value", :value => "myclass" - stmt = stub_everything 'stmt', :name => name, :arguments => [stmt_value], :doc => "mydoc" - stmt.stubs(:is_a?).with(Puppet::Parser::AST::ASTArray).returns(false) - stmt.stubs(:is_a?).with(Puppet::Parser::AST::Function).returns(true) - stmt + + Puppet::Parser::AST::Function.new( + :name => name, + :arguments => [stmt_value], + :doc => 'mydoc' + ) end before(:each) do @@ -379,10 +381,11 @@ describe RDoc::Parser do def create_stmt stmt_value = stub "resource_ref", :to_s => "File[\"/tmp/a\"]" - stmt = stub_everything 'stmt', :name => "realize", :arguments => [stmt_value], :doc => "mydoc" - stmt.stubs(:is_a?).with(Puppet::Parser::AST::ASTArray).returns(false) - stmt.stubs(:is_a?).with(Puppet::Parser::AST::Function).returns(true) - stmt + Puppet::Parser::AST::Function.new( + :name => 'realize', + :arguments => [stmt_value], + :doc => 'mydoc' + ) end before(:each) do @@ -434,11 +437,16 @@ describe RDoc::Parser do describe "when scanning for resources" do before :each do @class = stub_everything 'class' - - param = stub 'params', :children => [] - @stmt = stub_everything 'stmt', :type => "File", :title => "myfile", :doc => "mydoc", :params => param - @stmt.stubs(:is_a?).with(Puppet::Parser::AST::ASTArray).returns(false) - @stmt.stubs(:is_a?).with(Puppet::Parser::AST::Resource).returns(true) + @stmt = Puppet::Parser::AST::Resource.new( + :type => "File", + :instances => Puppet::Parser::AST::ASTArray.new(:children => [ + Puppet::Parser::AST::ResourceInstance.new( + :title => Puppet::Parser::AST::Name.new(:value => "myfile"), + :parameters => Puppet::Parser::AST::ASTArray.new(:children => []) + ) + ]), + :doc => 'mydoc' + ) @code = stub_everything 'code' @code.stubs(:is_a?).with(Puppet::Parser::AST::ASTArray).returns(true) |