238: def document_class(name, klass, container)
239: Puppet.debug "rdoc: found new class #{name}"
240: container, name = get_class_or_module(container, name)
241:
242: superclass = klass.parent
243: superclass = "" if superclass.nil? or superclass.empty?
244:
245: @stats.num_classes += 1
246: comment = klass.doc
247: look_for_directives_in(container, comment) unless comment.empty?
248: cls = container.add_class(PuppetClass, name, superclass)
249:
250:
251:
252: cls.superclass = superclass
253: cls.record_location(@top_level)
254:
255:
256: code = klass.code.children if klass.code.is_a?(Puppet::Parser::AST::ASTArray)
257: code ||= klass.code
258: unless code.nil?
259: scan_for_include_or_require(cls, code)
260: scan_for_realize(cls, code)
261: scan_for_resource(cls, code) if Puppet.settings[:document_all]
262: end
263:
264: cls.comment = comment
265: rescue => detail
266: raise Puppet::ParseError, "impossible to parse class '#{name}' in #{klass.file} at line #{klass.line}: #{detail}"
267: end