Build the initial indices and output objects based on an array of TopLevel objects containing the extracted information.
# File rdoc/generator/ri.rb, line 35 def generate(toplevels) RDoc::TopLevel.all_classes_and_modules.each do |cls| process_class cls end end
# File rdoc/generator/ri.rb, line 50 def generate_class_info(cls) case cls when RDoc::NormalModule then cls_desc = RDoc::RI::ModuleDescription.new else cls_desc = RDoc::RI::ClassDescription.new cls_desc.superclass = cls.superclass end cls_desc.name = cls.name cls_desc.full_name = cls.full_name cls_desc.comment = markup(cls.comment) cls_desc.attributes = cls.attributes.sort.map do |a| RDoc::RI::Attribute.new(a.name, a.rw, markup(a.comment)) end cls_desc.constants = cls.constants.map do |c| RDoc::RI::Constant.new(c.name, c.value, markup(c.comment)) end cls_desc.includes = cls.includes.map do |i| RDoc::RI::IncludedModule.new(i.name) end class_methods, instance_methods = method_list(cls) cls_desc.class_methods = class_methods.map do |m| RDoc::RI::MethodSummary.new(m.name) end cls_desc.instance_methods = instance_methods.map do |m| RDoc::RI::MethodSummary.new(m.name) end update_or_replace(cls_desc) class_methods.each do |m| generate_method_info(cls_desc, m) end instance_methods.each do |m| generate_method_info(cls_desc, m) end end
# File rdoc/generator/ri.rb, line 96 def generate_method_info(cls_desc, method) meth_desc = RDoc::RI::MethodDescription.new meth_desc.name = method.name meth_desc.full_name = cls_desc.full_name if method.singleton meth_desc.full_name += "::" else meth_desc.full_name += "#" end meth_desc.full_name << method.name meth_desc.comment = markup(method.comment) meth_desc.params = params_of(method) meth_desc.visibility = method.visibility.to_s meth_desc.is_singleton = method.singleton meth_desc.block_params = method.block_params meth_desc.aliases = method.aliases.map do |a| RDoc::RI::AliasName.new(a.name) end @ri_writer.add_method(cls_desc, meth_desc) end