提供以下输入:
=LOOKUP(2^15,SEARCH({"Beijing","New York","Japan"},A1,1),{"Beijing","New York","Japan"})
YARD 0.9.12生成以下警告(自〜> 0.8以来新的):
class A
# @!macro [attach] add_setting
# @!attribute [rw] $1
# @!method $1=(value)
def self.add_setting(setting)
end
# @param value [String] Hexadecimal representation of color
add_setting :color
end
构建此文档以避免警告的正确方法是什么? (此模式用于rspec。)
答案 0 :(得分:1)
你是正确的rspec
使用此文档,你可以看到他们使用定义的macro
# @macro [attach] add_setting
# @!attribute [rw] $1
# @!method $1=(value)
# .....
# @macro add_setting
# Run examples over DRb (default: `false`). RSpec doesn't supply the DRb
# server, but you can use tools like spork.
add_setting :drb
如果您在记录此方法时发现@macro add_setting
声明,则会告诉yard
使用add_setting
macro
。在这种情况下,$1
表示drb
,因此它会记录drb
属性。 (不是个别的getter / setter方法)
正如您所知,当他们记录这些方法时,他们不会声明数据类型,因为这些类型可能因不同的文档方法而有所不同。相反,他们在方法的描述中指定默认值。
选项1 (不确定原因为何)
只需定义getter和setter,而不是使用看起来像
的!@attribute
声明
class A
# @!macro [attach] add_setting
# @!method $1
# @return [Object] the $1 of the a
# @!method $1=(value)
def self.add_setting(setting)
end
# @param value [String] Hexadecimal representation of color
add_setting :color
end
@return
很重要或警告回来
选项2
如果你真的想要这个功能,你可以使用@overload
看起来像
class A
# @!macro [attach] add_setting
# @!method $1
# @return [Object] the $1 of the a
# @!method $1=(value)
def self.add_setting(setting)
end
# @overload color=(value)
# @param value [String] Hexadecimal representation of color
# @macro add_setting
add_setting :color
add_setting :name
end
这会导致name
和color
的getter方法记录为:
但是setter方法看起来像
因为我们重载color=
。
据说这并不能真正帮助你,因为它可能包括单独记录方法。
其他选择:
-q