首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rdoc:如何记录委托?

Rdoc:如何记录委托?
EN

Stack Overflow用户
提问于 2021-01-04 23:58:02
回答 1查看 83关注 0票数 1

我的类将一个方法委托给另一个对象(我称之为helper对象)。我希望在委托类中包含该方法的文档,而不仅仅是委托类。程序员不应该使用helper对象,而应该只使用main对象,所以在helper对象中编写文档并不是很有用。

考虑这个例子。Rdoc输出有关Node#initializeHelper#hello的文档。我希望有关于Node#hello的文档,就好像它只是另一种方法一样。有没有办法做到这一点?

代码语言:javascript
复制
require 'forwardable'

class Node
    extend Forwardable
    delegate %w(hello) => :@helper
    
    # Takes no params.
    def initialize
        @helper = Helper.new()
    end
end

class Helper
    
    # Outputs 'hello world'
    def hello
        puts 'hello world'
    end
end

-更新--

我试过了。yard命令如下所示:

代码语言:javascript
复制
yardoc --no-private --protected app/**/*.rb -

我编辑了拼音代码,尝试为Node#hello添加文档:

代码语言:javascript
复制
class Node
    extend Forwardable
    delegate %w(hello) => :@helper
    
    # Takes no params.
    def initialize
        @helper = Helper.new()
    end
    
    # @!method hello
    # Documentation for Node#hello
end

当我运行yardoc时,它似乎是在处理三个方法:

代码语言:javascript
复制
Files:           1
Modules:         0 (    0 undocumented)
Classes:         2 (    2 undocumented)
Constants:       0 (    0 undocumented)
Attributes:      0 (    0 undocumented)
Methods:         3 (    0 undocumented)
60.00% documented

如果我没有# @!method指令,那么它只处理两个方法:

代码语言:javascript
复制
Files:           1
Modules:         0 (    0 undocumented)
Classes:         2 (    2 undocumented)
Constants:       0 (    0 undocumented)
Attributes:      0 (    0 undocumented)
Methods:         2 (    0 undocumented)
50.00% documented

所以它看起来像是Node#hello的文档,但它并没有出现在实际的文档中:

所以我不知道接下来该怎么做。

EN

回答 1

Stack Overflow用户

发布于 2021-01-05 03:30:07

在@max的建议下,我转到了yard。使用yard,我可以在没有任何实际方法的情况下创建方法文档,如下所示:

代码语言:javascript
复制
# @!method hello()
# Outputs "hello world"
delegate %w(hello) => :@helper

值得注意的是,文档必须在实际代码之上。如果它是单独的,它就不会工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65565711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档