# File lib/puppet/util/rdoc/generators/puppet_generator.rb, line 82
 82:         def build_indices
 83:             @allfiles = []
 84:             @nodes = []
 85:             @plugins = []
 86: 
 87:             # contains all the seen modules
 88:             @modules = {}
 89:             @allclasses = {}
 90: 
 91:             # build the modules, classes and per modules classes and define list
 92:             @toplevels.each do |toplevel|
 93:                 next unless toplevel.document_self
 94:                 file = HtmlFile.new(toplevel, @options, FILE_DIR)
 95:                 classes = []
 96:                 methods = []
 97:                 modules = []
 98:                 nodes = []
 99: 
100:                 # find all classes of this toplevel
101:                 # store modules if we find one
102:                 toplevel.each_classmodule do |k|
103:                     generate_class_list(classes, modules, k, toplevel, CLASS_DIR)
104:                 end
105: 
106:                 # find all defines belonging to this toplevel
107:                 HtmlMethod.all_methods.each do |m|
108:                     # find parent module, check this method is not already
109:                     # defined.
110:                     if m.context.parent.toplevel === toplevel
111:                         methods << m
112:                     end
113:                 end
114: 
115:                 classes.each do |k|
116:                     @allclasses[k.index_name] = k if !@allclasses.has_key?(k.index_name)
117:                 end
118: 
119:                 # generate nodes and plugins found
120:                 classes.each do |k|
121:                     if k.context.is_module?
122:                         k.context.each_node do |name,node|
123:                             nodes << HTMLPuppetNode.new(node, toplevel, NODE_DIR, @options)
124:                             @nodes << nodes.last
125:                         end
126:                         k.context.each_plugin do |plugin|
127:                             @plugins << HTMLPuppetPlugin.new(plugin, toplevel, PLUGIN_DIR, @options)
128:                         end
129:                         k.context.each_fact do |fact|
130:                             @plugins << HTMLPuppetPlugin.new(fact, toplevel, PLUGIN_DIR, @options)
131:                         end
132:                     end
133:                 end
134: 
135:                 @files << file
136:                 @allfiles << { "file" => file, "modules" => modules, "classes" => classes, "methods" => methods, "nodes" => nodes }
137:             end
138: 
139:             @classes = @allclasses.values
140:         end