./ruby/rdoc/impl.txt

download original
   cmdline argument                    set attr. in Rdoc#document / options

/usr/bin/ruby1.8 /usr/bin/rdoc              
 -o doc/api                                  op_dir        = arg
 --line-numbers                              include_line_numbers = true
 --inline-source                             inline_source = true
 --accessor cattr_accessor=object            accessors=['cattr_accessor']; extra_accessor_flags['cattr_accessor'] = 'object'
 --include examples                          rdoc_include = ['examples']
 --title 'XML::Mapping -- Simple, extensible Ruby-to-XML (and back) mapper'   title='XML::...'
 -T html                                     template = 'html'

file1 file2 ...                              files = [file1,file2,...]

 README README_XPATH TODO.txt doc/xpath_impl_notes.txt lib/xml/mapping.rb lib/xml/xxpath.rb lib/xml/rexml_ext.rb lib/xml/xxpath_methods.rb lib/xml/xxpath.1.rb lib/xml/mapping/version.rb lib/xml/mapping/base.rb lib/xml/mapping/standard_nodes.rb lib/xml/mapping/dynamic_scope.rb lib/xml/mapping/core_classes_mapping.rb lib/xml/xxpath/steps.rb


(other options attrs)

 generator_name = 'html'
 generator = generators[@generator_name] # == Generator.new("rdoc/generators/html_generator.rb",
                                                            :HTMLGenerator,
                                                            "html")


(

Generator = Struct.new(:file_name, :class_name, :key)

RDoc.GENERATORS = { "html" => Generator.new("rdoc/generators/html_generator.rb",
                                             :HTMLGenerator,
                                             "html"),
                     "chm" => Generator.new("rdoc/generators/chm_generator.rb",
                                            :CHMGenerator,
                                            "chm"),
                     "ri" => Generator.new("rdoc/generators/ri_generator.rb",
                                           :RIGenerator,
                                           "ri"),
                     "xml" => Generator.new("rdoc/generators/xml_generator.rb",
                                            :XMLGenerator,
                                            "xml")
                   }
                     
)



RDoc#document

  file_info = parse_files
    for a "README" file:

      parser = ParserFactory.parser_for(TopLevel.new("README"), "README", file's content, options, @stats)

             ## == SimpleParser.new(TopLevel.new("README"), "README", file's content, options, @stats)

    or, for a "*.rb" file:

      parser == RubyParser.new(...)

  ## file_info == array of TopLevels (see rdoc/code_objects.rb), one
  ## for each file. For a README file, the toplevel will contain a
  ## single comment element which holds the whole file contents, with
  ## :include: directives expanded.


  gen = HTMLGenerator.for(options)  # == HTMLGenerator.new(options)

  Dir.chdir(options.op_dir)  # "doc/api"
  gen.generate(file_info)

      @toplevels = file_info
      @toplevels.each do |toplevel|
        @files << HtmlFile.new(toplevel, @options, FILE_DIR)
      end

      generate_html

        gen_into(@files)
          @files.each do |item|
            if item.document_self
              op_file = item.path
              File.makedirs(File.dirname(op_file))
              File.open(op_file, "w") { |file| item.write_on(file) }
                                                   HtmlFile#write_on(f)
                                                     value_hash
                                                     template = TemplatePage.new(RDoc::Page::BODY,
                                                                  RDoc::Page::FILE_PAGE,
                                                                  RDoc::Page::METHOD_LIST)
                                                     template.write_html_on(f, @values)

                                                     expands the mentioned templates
                                                     (RDoc::Page::BODY, RDoc::Page::FILE_PAGE,
                                                     RDoc::Page::METHOD_LIST) (defined in html.rb).
                                                     METHOD_LIST contains:
                                                       %description%
                                                     This expands to the value of @values['description'],
                                                     which is set in value_hash to markup(@context.comment)
                                                     (@context is the toplevel passed to the contructor above,
                                                     and @context.comment is the "raw" content of the
                                                     README file.

                                                     Description of markup (=> MarkUp#markup) follows below.
                                                   end

            end
          end

  
back to rdoc

(C) 1998-2017 Olaf Klischat <olaf.klischat@gmail.com>