summaryrefslogtreecommitdiffstats
path: root/lib/puppet/util/rdoc/generators
diff options
context:
space:
mode:
authorBrice Figureau <brice-puppet@daysofwonder.com>2009-10-15 20:22:46 +0200
committerJames Turnbull <james@lovedthanlost.net>2009-10-24 08:36:58 +1100
commit8d9fbbd4b9d7f1d467ea6123fedcf0ee74f4e8cc (patch)
tree4d077ecbd90400fc3b779dd0b529f4735e9fc096 /lib/puppet/util/rdoc/generators
parent41b7c3c70082a03563a6b59f23e72ba3735e6efe (diff)
downloadpuppet-8d9fbbd4b9d7f1d467ea6123fedcf0ee74f4e8cc.tar.gz
puppet-8d9fbbd4b9d7f1d467ea6123fedcf0ee74f4e8cc.tar.xz
puppet-8d9fbbd4b9d7f1d467ea6123fedcf0ee74f4e8cc.zip
Fix #2703 - add 'require' to puppetdoc
Puppetdoc wasn't parsing 'require'. This patch adds a 'require' section to list all required class from nodes and classes. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
Diffstat (limited to 'lib/puppet/util/rdoc/generators')
-rw-r--r--lib/puppet/util/rdoc/generators/puppet_generator.rb39
-rw-r--r--lib/puppet/util/rdoc/generators/template/puppet/puppet.rb25
2 files changed, 50 insertions, 14 deletions
diff --git a/lib/puppet/util/rdoc/generators/puppet_generator.rb b/lib/puppet/util/rdoc/generators/puppet_generator.rb
index bf2609fd6..b7055e799 100644
--- a/lib/puppet/util/rdoc/generators/puppet_generator.rb
+++ b/lib/puppet/util/rdoc/generators/puppet_generator.rb
@@ -320,6 +320,26 @@ module Generators
end
+ # This module is used to generate a referenced full name list of ContextUser
+ module ReferencedListBuilder
+ def build_referenced_list(list)
+ res = []
+ list.each do |i|
+ ref = @context.find_symbol(i.name)
+ ref = ref.viewer if ref
+ name = i.respond_to?(:full_name) ? i.full_name : i.name
+ h_name = CGI.escapeHTML(name)
+ if ref and ref.document_self
+ path = url(ref.path)
+ res << { "name" => h_name, "aref" => path }
+ else
+ res << { "name" => h_name }
+ end
+ end
+ res
+ end
+ end
+
# This module is used to hold/generate a list of puppet resources
# this is used in HTMLPuppetClass and HTMLPuppetNode
module ResourceContainer
@@ -360,7 +380,7 @@ module Generators
end
class HTMLPuppetClass < HtmlClass
- include ResourceContainer
+ include ResourceContainer, ReferencedListBuilder
def value_hash
super
@@ -376,12 +396,20 @@ module Generators
secdata["resource_list"] = rdl unless rdl.empty?
end
end
+
+ rl = build_require_list(@context)
+ @values["requires"] = rl unless rl.empty?
+
@values
end
+
+ def build_require_list(context)
+ build_referenced_list(context.requires)
+ end
end
class HTMLPuppetNode < ContextUser
- include ResourceContainer
+ include ResourceContainer, ReferencedListBuilder
attr_reader :path
@@ -452,6 +480,9 @@ module Generators
il = build_include_list(@context)
@values["includes"] = il unless il.empty?
+ rl = build_require_list(@context)
+ @values["requires"] = rl unless rl.empty?
+
@values["sections"] = @context.sections.map do |section|
secdata = {
@@ -554,6 +585,10 @@ module Generators
@values['infiles'] = files
end
+ def build_require_list(context)
+ build_referenced_list(context.requires)
+ end
+
def <=>(other)
self.name <=> other.name
end
diff --git a/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb b/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb
index e12b6519c..c8f1e7d04 100644
--- a/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb
+++ b/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb
@@ -538,18 +538,6 @@ IF:description
</div>
ENDIF:description
-IF:requires
- <div id="requires-list">
- <h3 class="section-bar">Required files</h3>
-
- <div class="name-list">
-START:requires
- HREF:aref:name:&nbsp;&nbsp;
-END:requires
- </div>
- </div>
-ENDIF:requires
-
IF:toc
<div id="contents-list">
<h3 class="section-bar">Contents</h3>
@@ -601,6 +589,19 @@ END:includes
</div>
ENDIF:includes
+ <!-- if requires -->
+IF:requires
+ <div id="requires">
+ <h3 class="section-bar">Required Classes</h3>
+
+ <div id="requires-list">
+START:requires
+ <span class="require-name">HREF:aref:name:</span>
+END:requires
+ </div>
+ </div>
+ENDIF:requires
+
START:sections
<div id="section">
IF:sectitle