Class Generators::HTMLGeneratorInOne
In: rdoc/generators/html_generator.rb
Parent: HTMLGenerator

Methods

Public Class methods

[Source]

# File rdoc/generators/html_generator.rb, line 1393
    def initialize(*args)
      super
    end

Public Instance methods

[Source]

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

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)

[Source]

# File rdoc/generators/html_generator.rb, line 1422
    def build_indices

      @toplevels.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

[Source]

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

[Source]

# File rdoc/generators/html_generator.rb, line 1477
    def gen_class_index
      gen_an_index(@classes, 'Classes')
    end

[Source]

# File rdoc/generators/html_generator.rb, line 1473
    def gen_file_index
      gen_an_index(@files, 'Files')
    end

[Source]

# File rdoc/generators/html_generator.rb, line 1465
    def gen_into(list)
      res = []
      list.each do |item|
        res << item.value_hash
      end
      res
    end

[Source]

# File rdoc/generators/html_generator.rb, line 1481
    def gen_method_index
      gen_an_index(HtmlMethod.all_methods, 'Methods')
    end

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

[Source]

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

      build_indices
      generate_xml
    end

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

[Source]

# File rdoc/generators/html_generator.rb, line 1444
    def generate_xml
      values = { 
        'charset' => @options.charset,
        'files'   => gen_into(@files),
        'classes' => gen_into(@classes),
        'title'        => CGI.escapeHTML(@options.title),
      }
      
      # 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

[Validate]