Yard文档工具中的@tag和@!标签有什么区别?

时间:2014-07-30 14:46:19

标签: ruby documentation yard

在查看Yard documentation和示例时,我发现一些标签以感叹号为前缀。

我找到了带有感叹号和没有惊叹号的工作示例,我无法发现差异,那么在使用@!some-tag代替@some-tag时会发生什么变化?

例如,此代码为attrattr2

生成相同的文档
class Anything
  # @!attribute [rw] attr
  # @attribute [rw] attr2
end

另一方面,在some examples中,感叹号的重要性有下划线,因此它应该做某事,但我找不到任何关于它的文档的使用。

@!方法示例

Rails模型中的这两个注释都会生成新方法

# @!method with_bang(param)
scope :foo_bar, where(foo: 'bar')
# @method without_bang(param)
scope :foo_baz, where(foo: 'baz')

码输出:

yard output

1 个答案:

答案 0 :(得分:0)

当记录的代码段将在其类中生成属性或方法时,使用!中的Yard修饰符。例如:

# @!method foo(name, opts = {})
create_a_foo_method

这告诉我们create_a_foo_method将生成一个带有签名def foo(name, ops = {})的方法。您可以将此思路应用于@!scope@!visibility和其他所有@!tag。如Yard文档中所述,这对于记录DSL非常有用。