9

我不确定这是否真的可行,但我试图通过在我们的app/models文件中添加范围的文档来使我们的 rails 应用程序的文档更加完整。我正在尝试做的是:

# This is a description of what the scope does and the action that it performs
scope :newest_records, order("created_at desc").limit(50)

然后,当我在应用程序上运行 rdoc 时,我希望看到newest_records列为公共类方法以及更传统的方法,这些方法将被记录如下:

# some more documentation about this method
def self.a_class method
  ....
end

编辑

我意识到这个问题可能有点模棱两可。所以这里尝试澄清一下:目前,当我尝试在scope声明上方添加注释行时,我没有得到 RDoc 为范围生成的文档。我知道 RDoc 可以获取元方法/属性,否则它不会在用 . 声明的文档中显示属性attr_accessor。所以我的问题是如何向我的文件添加评论,以便:

  • 该方法出现在我的 RDoc 生成的文档中
  • 它显示为公共类方法(与公共实例方法等相反)
4

2 回答 2

5

在 RDoc Docs 中进行了一些挖掘之后,我想我已经设法回答了我自己的问题。

您可以按如下方式记录范围:

##
# :singleton-method:
# Documentation for the scope to explain what it does
scope :newest_records, order("created_at desc").limit(50)

双散列用于获取元编程方法,如果您正在创建实例方法,那么这就是您所需要的。但是,作为作用域创建一个类方法,您还需要使用 :singleton-method: 行来表明这一点。文档在以下几行中继续正常进行。

您可以在RDoc 文档中查看记录元方法等的完整语法

于 2011-09-02T11:34:34.217 回答
1

范围是类方法,所以 Rdoc 做得对。我会说就 Rdoc 所知,这是有效的。

使用 YARD 等更可扩展的东西,您可能会有更好的控制。

于 2011-09-02T04:18:26.153 回答