- 1_8_6_287
- 1_8_7_72
- 1_8_7_330
- 1_9_1_378 (0)
- 1_9_2_180 (1)
- 1_9_3_125 (38)
- 1_9_3_392 (0)
- 2_1_10 (8)
- 2_2_9 (0)
- 2_4_6 (1)
- 2_5_5 (0)
- 2_6_3 (0)
- What's this?
frozen_string_literal: true
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 end
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 RDoc::Options@Custom+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.