Method: Generators::PuppetGenerator#build_indices
- Defined in:
- lib/puppet/util/rdoc/generators/puppet_generator.rb
#build_indices ⇒ Object
Generate:
the list of modules
the list of classes and definitions of a specific module
the list of all classes
the list of nodes
the list of resources
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 |
# File 'lib/puppet/util/rdoc/generators/puppet_generator.rb', line 100 def build_indices @allfiles = [] @nodes = [] @plugins = [] # contains all the seen modules @modules = {} @allclasses = {} # remove unknown toplevels # it can happen that RDoc triggers a different parser for some files (ie .c, .cc or .h) # in this case RDoc generates a RDoc::TopLevel which we do not support in this generator # So let's make sure we don't generate html for those. @toplevels = @toplevels.select { |tl| tl.is_a? RDoc::PuppetTopLevel } # build the modules, classes and per modules classes and define list @toplevels.each do |toplevel| next unless toplevel.document_self file = HtmlFile.new(toplevel, @options, FILE_DIR) classes = [] methods = [] modules = [] nodes = [] # find all classes of this toplevel # store modules if we find one toplevel.each_classmodule do |k| generate_class_list(classes, modules, k, toplevel, CLASS_DIR) end # find all defines belonging to this toplevel HtmlMethod.all_methods.each do |m| # find parent module, check this method is not already # defined. if m.context.parent.toplevel === toplevel methods << m end end classes.each do |k| @allclasses[k.index_name] = k unless @allclasses.has_key?(k.index_name) end # generate nodes and plugins found classes.each do |k| next unless k.context.is_module? k.context.each_node do |_name, node| nodes << HTMLPuppetNode.new(node, toplevel, NODE_DIR, @options) @nodes << nodes.last end k.context.each_plugin do |plugin| @plugins << HTMLPuppetPlugin.new(plugin, toplevel, PLUGIN_DIR, @options) end k.context.each_fact do |fact| @plugins << HTMLPuppetPlugin.new(fact, toplevel, PLUGIN_DIR, @options) end end @files << file @allfiles << { "file" => file, "modules" => modules, "classes" => classes, "methods" => methods, "nodes" => nodes } end # scan all classes to create the child's references @allclasses.values.each do |klass| superklass = klass.context.superclass next unless superklass superklass = AllReferences[superklass] if superklass && (superklass.is_a?(HTMLPuppetClass) || superklass.is_a?(HTMLPuppetNode)) superklass.context.add_child(klass.context) end end @classes = @allclasses.values end |