YARD:记录自定义 getter/setter 对,如 attr_accessor

发布于 2024-12-06 23:23:16 字数 398 浏览 0 评论 0原文

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

attr_accessor :some_attribute

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

def some_other_attribute
  # ...
end

def some_other_attribute= value
  # ...
end

所以基本上我的问题是,如何让 YARD 记录这对 setter/getter,就像前一种情况中的 attr_accessor 一样,并列出 “实例属性摘要”中的“some_other_attribute”?

I'm using YARD to document my project. YARD document attributes created with

attr_accessor :some_attribute

in a separate section "Instance Attribute Summary". Now I have another attribute, but with custom setter and getter

def some_other_attribute
  # ...
end

def some_other_attribute= value
  # ...
end

so basically my question is, how can I get YARD to document this pair of setter/getter just like attr_accessor in the previous case, and list some_other_attribute within "Instance Attribute Summary"?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

轻拂→两袖风尘 2024-12-13 23:23:16

从 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 不应该介意,除了在 r​​uby​​ -w 中它会警告方法重新定义。如果这让您感到困扰,您也可以在其中添加 undef foo, foo= 。它有点混乱(如果你关心 -w),这就是为什么我们添加了诸如 @!parse@!attribute 之类的东西。

As of 0.8 (which is in pre-release right now), the @!attribute directive is the recommended way to denote that an object is an attribute. The @attr_* tags are deprecated in favour of this directive. You could also do (in 0.8.0+):

# @!parse attr_accessor :some_attribute

To parse code that isn't necessarily executed by Ruby. Prior to 0.8, you could just add the attr_accessor directly and then redefine the setter/getter as follows:

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

Ruby shouldn't mind, except that in ruby -w it will warn about method redefinitions. If this bugs you, you can add undef foo, foo= in there too. It's a little messy (if you care about -w), which is why we added things like @!parse and @!attribute.

著墨染雨君画夕 2024-12-13 23:23:16

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

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

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

You should be able to use the @attr tag on the class:

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

There are other tags (like @attr_reader and @attr_writer) than can also be helpful.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文