In Files

  • rdoc/generators/xml_generator.rb

Files

Class/Module Index [+]

Quicksearch

Generators::XMLGenerator

Generate XML output as one big file

Public Class Methods

for(options) click to toggle source

Standard generator factory

 
               # File rdoc/generators/xml_generator.rb, line 16
def XMLGenerator.for(options)
  XMLGenerator.new(options)
end
            
new(*args) click to toggle source
 
               # File rdoc/generators/xml_generator.rb, line 21
def initialize(*args)
  super
end
            

Public Instance Methods

build_class_list(from, html_file, class_dir) click to toggle source
 
               # File rdoc/generators/xml_generator.rb, line 61
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
end
            
build_indices() click to toggle source

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)

 
               # File rdoc/generators/xml_generator.rb, line 50
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
end
            
gen_an_index(collection, title) click to toggle source
 
               # File rdoc/generators/xml_generator.rb, line 113
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
  end

  return {
    "entries" => res,
    'list_title' => title,
    'index_url'  => main_url,
  }
end
            
gen_class_index() click to toggle source
 
               # File rdoc/generators/xml_generator.rb, line 104
def gen_class_index
  gen_an_index(@classes, 'Classes')
end
            
gen_file_index() click to toggle source
 
               # File rdoc/generators/xml_generator.rb, line 100
def gen_file_index
  gen_an_index(@files, 'Files')
end
            
gen_into(list) click to toggle source
 
               # File rdoc/generators/xml_generator.rb, line 92
def gen_into(list)
  res = []
  list.each do |item|
    res << item.value_hash
  end
  res
end
            
gen_method_index() click to toggle source
 
               # File rdoc/generators/xml_generator.rb, line 108
def gen_method_index
  gen_an_index(HtmlMethod.all_methods, 'Methods')
end
            
generate(info) click to toggle source

Build the initial indices and output objects based on an array of TopLevel objects containing the extracted information.

 
               # File rdoc/generators/xml_generator.rb, line 30
def generate(info)
  @info       = info
  @files      = []
  @classes    = []
  @hyperlinks = {}

  build_indices
  generate_xml
end
            
generate_xml() click to toggle source

Generate all the HTML. For the one-file case, we generate all the information in to one big hash

 
               # File rdoc/generators/xml_generator.rb, line 72
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

  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)
end
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus