模块 RDoc::Generator

RDoc 使用生成器将解析后的源代码(以 RDoc::CodeObject 树的形式)转换为某种形式的输出。RDoc 自带 HTML 生成器 RDoc::Generator::Darkfish 和一个 ri 数据生成器 RDoc::Generator::RI。

注册一个 Generator

通过调用 RDoc::RDoc.add_generator 并传入生成器的类来注册生成器。

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

rdoc 添加 Options

rdoc 中的选项处理之前,RDoc::Options 将使用 RDoc::Options 实例调用生成器类上的 ::setup_options。生成器可以使用 RDoc::Options#option_parserrdoc 工具添加命令行选项。有关示例,请参阅 RDoc::Options 中的自定义选项,有关如何添加选项的详细信息,请参阅 OptionParser

您可以为您的生成器扩展 RDoc::Options 实例,添加额外的访问器。

Generator 实例化

解析之后,RDoc::RDoc 将通过使用 RDoc::Store 实例和 RDoc::Options 实例调用 initialize 来实例化生成器。

RDoc::Store 实例保存已解析源代码的文档。在 RDoc 3 及更早版本中,RDoc::TopLevel 类保存此数据。当从 RDoc 3 及更早版本升级生成器时,您只需要用 store 实例替换 RDoc::TopLevel。

RDoc 随后将调用生成器实例上的 generate。您可以使用 RDoc::Store 上的各种方法以及 RDoc::CodeObject 树中的方法来创建您期望的输出格式。