In Files

  • rdoc/generator.rb
  • rdoc/generator/darkfish.rb
  • rdoc/generator/json_index.rb
  • rdoc/generator/markup.rb
  • rdoc/generator/ri.rb
  • rdoc/options.rb
  • rdoc/servlet.rb

Class/Module Index [+]



RDoc uses generators to turn parsed source code in the form of an RDoc::CodeObject tree into some form of output. RDoc comes with the HTML generator RDoc::Generator::Darkfish and an ri data generator RDoc::Generator::RI.

Registering a Generator

Generators are registered by calling RDoc::RDoc.add_generator with the class of the generator:

class My::Awesome::Generator
  RDoc::RDoc.add_generator self

Adding Options to rdoc

Before option processing in rdoc, RDoc::Options will call ::setup_options on the generator class with an RDoc::Options instance. The generator can use RDoc::Options#option_parser to add command-line options to the rdoc tool. See Custom Options at RDoc::Options for an example and see OptionParser for details on how to add options.

You can extend the RDoc::Options instance with additional accessors for your generator.

Generator Instantiation

After parsing, RDoc::RDoc will instantiate a generator by calling initialize with an RDoc::Store instance and an RDoc::Options instance.

The RDoc::Store instance holds documentation for parsed source code. In RDoc 3 and earlier the RDoc::TopLevel class held this data. When upgrading a generator from RDoc 3 and earlier you should only need to replace RDoc::TopLevel with the store instance.

RDoc will then call generate on the generator instance. You can use the various methods on RDoc::Store and in the RDoc::CodeObject tree to create your desired output format.

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