Ruby中能否用RDoc为匿名类生成方法文档?已尝试指令无果
解决RDoc为匿名类方法生成文档的问题
针对你用RDoc给Class.new创建的匿名类方法生成文档的需求,在Ruby 2.7 + RDoc 6.6.2环境下,可以通过以下方式解决:
- 给匿名类的赋值语句添加
:class:指令,明确类的标识,让RDoc能将闭包内的方法关联到该类 - 采用标准RDoc注释格式编写方法文档,无需额外的
:method:指令
修改后的示例代码如下:
# (c) 2024 Big Corporation # = ExampleModule gives a great example to all of us # # This module contains an example of documenting an anonymous class created with Class.new. module ExampleModule # Create an anonymous class using Class.new, now properly documented with RDoc ## # :class: AnonymousClass # 这是赋值给AnonymousClass常量的匿名类,用于演示RDoc文档生成 AnonymousClass = Class.new do ## # 初始化实例,接收两个参数 # # @param param1 [Object] 第一个初始化参数 # @param param2 [Object] 第二个初始化参数 def initialize(param1, param2) # ... initialization code ... end ## # 执行示例操作的方法 # # @return [Object] 示例操作的结果 def example_method # ... method implementation ... end end end
关键说明:
:class:指令的作用:在AnonymousClass = Class.new上方添加该指令,告诉RDoc这个常量对应的是一个名为AnonymousClass的类,这样闭包内的方法会被归到这个类的文档下。- 方法注释简化:去掉原代码中方法上的
:method:指令,直接用##开头的标准注释块即可,RDoc会自动识别类上下文内的方法并生成对应文档。 - 增强文档信息:使用
@param、@return这类RDoc标准标签,可以让生成的文档包含参数、返回值的详细说明,可读性更强。
验证方式:在项目目录下运行rdoc命令生成文档,打开生成的HTML页面,找到ExampleModule下的AnonymousClass,就能看到两个方法的完整文档了。
内容的提问来源于stack exchange,提问作者Serge
相关产品推荐
相关产品推荐

