6

我正在使用 YARD 来记录我的项目。使用创建的 YARD 文档属性

attr_accessor :some_attribute

在单独的部分“实例属性摘要”中。现在我有另一个属性,但使用自定义 setter 和 getter

def some_other_attribute
  # ...
end

def some_other_attribute= value
  # ...
end

attr_accessor所以基本上我的问题是,我怎样才能让 YARD 像前一种情况一样记录这对设置器/获取器,并some_other_attribute在“实例属性摘要”中列出?

4

2 回答 2

5

从 0.8 开始(现在处于预发布状态),该@!attribute指令是表示对象是属性的推荐方式。不推荐使用@attr_*标签以支持此指令。您也可以这样做(在 0.8.0+ 中):

# @!parse attr_accessor :some_attribute

解析不一定由 Ruby 执行的代码。在 0.8 之前,您可以直接添加 attr_accessor,然后重新定义 setter/getter,如下所示:

class MyClass
  attr_accessor :foo
  def foo; something_else end
  def foo=(v) something_else(v) end
end

Ruby 不应该介意,除了ruby -w它会警告方法重定义。如果这让您感到困扰,您也可以undef foo, foo=在那里添加。这有点乱(如果你关心 -w),这就是我们添加诸如@!parseand之类的东西的原因@!attribute

于 2012-04-27T06:52:36.040 回答
1

您应该能够在类上使用 @attr 标记:

# @attr [String] name The name of this object. 
class MyClass
  def name
  end
  def name=
  end
end

还有其他标签(如@attr_reader 和@attr_writer)也很有帮助。

于 2011-10-06T02:59:36.353 回答