From d31ff7ebee14f79b523c3fe4c974d4e6add47a2d Mon Sep 17 00:00:00 2001 From: Brice Figureau Date: Mon, 28 Dec 2009 16:47:57 +0100 Subject: Adapt to method name change since 8971d8 When the definition/hostclass/node AST types were removed, the parentclass method was renamed to 'parent'. This patch fixes the incorrect rdoc usage (and some deeper integration test so that it won't happen again). Signed-off-by: Brice Figureau --- lib/puppet/util/rdoc/parser.rb | 6 +++--- spec/integration/util/rdoc/parser.rb | 17 +++++++++++++++++ spec/unit/util/rdoc/parser.rb | 4 ++-- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/lib/puppet/util/rdoc/parser.rb b/lib/puppet/util/rdoc/parser.rb index 4d0ac484f..9a2bef932 100644 --- a/lib/puppet/util/rdoc/parser.rb +++ b/lib/puppet/util/rdoc/parser.rb @@ -236,7 +236,7 @@ class Parser Puppet.debug "rdoc: found new class %s" % name container, name = get_class_or_module(container, name) - superclass = klass.parentclass + superclass = klass.parent superclass = "" if superclass.nil? or superclass.empty? @stats.num_classes += 1 @@ -266,7 +266,7 @@ class Parser # create documentation for a node def document_node(name, node, container) Puppet.debug "rdoc: found new node %s" % name - superclass = node.parentclass + superclass = node.parent superclass = "" if superclass.nil? or superclass.empty? comment = node.doc @@ -294,7 +294,7 @@ class Parser # find superclas if any @stats.num_methods += 1 - # find the parentclass + # find the parent # split define name by :: to find the complete module hierarchy container, name = get_class_or_module(container,name) diff --git a/spec/integration/util/rdoc/parser.rb b/spec/integration/util/rdoc/parser.rb index 542660998..1dd36c699 100755 --- a/spec/integration/util/rdoc/parser.rb +++ b/spec/integration/util/rdoc/parser.rb @@ -35,8 +35,25 @@ describe RDoc::Parser do File.unlink(@parsedfile) end + def get_test_class(toplevel) + # toplevel -> main -> test + toplevel.classes[0].classes[0] + end + it "should parse to RDoc data structure" do @parser.expects(:document_class).with { |n,k,c| n == "::test" and k.is_a?(Puppet::Parser::ResourceType) } @parser.scan end + + it "should get a PuppetClass for the main class" do + @parser.scan.classes[0].should be_a RDoc::PuppetClass + end + + it "should produce a PuppetClass whose name is test" do + get_test_class(@parser.scan).name.should == "test" + end + + it "should produce a PuppetClass whose comment is 'comment'" do + get_test_class(@parser.scan).comment.should == "comment\n" + end end diff --git a/spec/unit/util/rdoc/parser.rb b/spec/unit/util/rdoc/parser.rb index 19c91bb9a..ce776da9b 100755 --- a/spec/unit/util/rdoc/parser.rb +++ b/spec/unit/util/rdoc/parser.rb @@ -252,7 +252,7 @@ describe RDoc::Parser do describe "when documenting nodes" do before :each do @code = stub_everything 'code' - @node = stub_everything 'node', :doc => "mydoc", :parentclass => "parent", :code => @code, :file => "file", :line => 42 + @node = stub_everything 'node', :doc => "mydoc", :parent => "parent", :code => @code, :file => "file", :line => 42 @rdoc_node = stub_everything 'rdocnode' @class = stub_everything 'class' @@ -295,7 +295,7 @@ describe RDoc::Parser do describe "when documenting classes" do before :each do @code = stub_everything 'code' - @class = stub_everything 'class', :doc => "mydoc", :parentclass => "parent", :code => @code, :file => "file", :line => 42 + @class = stub_everything 'class', :doc => "mydoc", :parent => "parent", :code => @code, :file => "file", :line => 42 @rdoc_class = stub_everything 'rdoc-class' @module = stub_everything 'class' -- cgit