diff options
Diffstat (limited to 'lib/rdoc/generators/xml_generator.rb')
-rw-r--r-- | lib/rdoc/generators/xml_generator.rb | 184 |
1 files changed, 88 insertions, 96 deletions
diff --git a/lib/rdoc/generators/xml_generator.rb b/lib/rdoc/generators/xml_generator.rb index 8034fac517..1a027d176c 100644 --- a/lib/rdoc/generators/xml_generator.rb +++ b/lib/rdoc/generators/xml_generator.rb @@ -1,127 +1,119 @@ -require 'rdoc/options' -require 'rdoc/markup/simple_markup' -require 'rdoc/markup/simple_markup/to_html' require 'rdoc/generators/html_generator' -module Generators +## +# Generate XML output as one big file - ## - # Generate XML output as one big file - - class XMLGenerator < HTMLGenerator +class Generators::XMLGenerator < Generators::HTMLGenerator - ## - # Standard generator factory - - def XMLGenerator.for(options) - XMLGenerator.new(options) - end + ## + # Standard generator factory - def initialize(*args) - super - end + def self.for(options) + new(options) + end - ## - # Build the initial indices and output objects - # based on an array of TopLevel objects containing - # the extracted information. + def initialize(*args) + super + end - def generate(info) - @info = info - @files = [] - @classes = [] - @hyperlinks = {} + ## + # Build the initial indices and output objects + # based on an array of TopLevel objects containing + # the extracted information. + + def generate(info) + @info = info + @files = [] + @classes = [] + @hyperlinks = {} + + build_indices + generate_xml + end - build_indices - generate_xml + ## + # Generate: + # + # * a list of HtmlFile objects for each TopLevel object. + # * a list of HtmlClass objects for each first level + # class or module in the TopLevel objects + # * a complete list of all hyperlinkable terms (file, + # class, module, and method names) + + def build_indices + @info.each do |toplevel| + @files << Generators::HtmlFile.new(toplevel, @options, Generators::FILE_DIR) end - ## - # Generate: - # - # * a list of HtmlFile objects for each TopLevel object. - # * a list of HtmlClass objects for each first level - # class or module in the TopLevel objects - # * a complete list of all hyperlinkable terms (file, - # class, module, and method names) - - def build_indices - - @info.each do |toplevel| - @files << HtmlFile.new(toplevel, @options, FILE_DIR) - end - - RDoc::TopLevel.all_classes_and_modules.each do |cls| - build_class_list(cls, @files[0], CLASS_DIR) - end + RDoc::TopLevel.all_classes_and_modules.each do |cls| + build_class_list(cls, @files[0], Generators::CLASS_DIR) end + end - def build_class_list(from, html_file, class_dir) - @classes << HtmlClass.new(from, html_file, class_dir, @options) - from.each_classmodule do |mod| - build_class_list(mod, html_file, class_dir) - end + def build_class_list(from, html_file, class_dir) + @classes << Generators::HtmlClass.new(from, html_file, class_dir, @options) + from.each_classmodule do |mod| + build_class_list(mod, html_file, class_dir) end + end - ## - # Generate all the HTML. For the one-file case, we generate - # all the information in to one big hash + ## + # Generate all the HTML. For the one-file case, we generate + # all the information in to one big hash - def generate_xml - values = { - 'charset' => @options.charset, - 'files' => gen_into(@files), - 'classes' => gen_into(@classes) - } + def generate_xml + values = { + 'charset' => @options.charset, + 'files' => gen_into(@files), + 'classes' => gen_into(@classes) + } - # this method is defined in the template file - write_extra_pages if defined? write_extra_pages + # this method is defined in the template file + write_extra_pages if defined? write_extra_pages - template = TemplatePage.new(RDoc::Page::ONE_PAGE) + template = TemplatePage.new(RDoc::Page::ONE_PAGE) - if @options.op_name - opfile = File.open(@options.op_name, "w") - else - opfile = $stdout - end - template.write_html_on(opfile, values) + if @options.op_name + opfile = File.open(@options.op_name, "w") + else + opfile = $stdout end + template.write_html_on(opfile, values) + end - def gen_into(list) - res = [] - list.each do |item| - res << item.value_hash - end - res + def gen_into(list) + res = [] + list.each do |item| + res << item.value_hash end + res + end - def gen_file_index - gen_an_index(@files, 'Files') - end + def gen_file_index + gen_an_index(@files, 'Files') + end - def gen_class_index - gen_an_index(@classes, 'Classes') - end + def gen_class_index + gen_an_index(@classes, 'Classes') + end - def gen_method_index - gen_an_index(HtmlMethod.all_methods, 'Methods') - end + def gen_method_index + gen_an_index(Generators::HtmlMethod.all_methods, 'Methods') + end - def gen_an_index(collection, title) - res = [] - collection.sort.each do |f| - if f.document_self - res << { "href" => f.path, "name" => f.index_name } - end + def gen_an_index(collection, title) + res = [] + collection.sort.each do |f| + if f.document_self + res << { "href" => f.path, "name" => f.index_name } end - - return { - "entries" => res, - 'list_title' => title, - 'index_url' => main_url, - } end + return { + "entries" => res, + 'list_title' => title, + 'index_url' => main_url, + } end end |