我有一个DSL方法,它添加一个常量(它的遗留代码,所以不要讨厌)。这不是确切的代码,但它足够描述。
class Foo
bar :awesome, "cold Coke"
bar :lame, "warm Coke"
def bar(name, value)
const_set(name, value)
end
end
我正在尝试使用Yard记录常量AWESOME
和LAME
。我希望有一个@!constant
标签,但没有。
任何人都可以帮忙吗?
答案 0 :(得分:1)
我认为这应该让Yard做正确的事情:
# @!parse AWESOME = "cold Coke"
# @!parse LAME = "warm Coke"
如果您的代码中到处都有bar
,则可以使用Yard的宏附件进行扩展。但是,宏行为似乎不喜欢常量,或允许您的DSL可能对内容进行字符串处理(例如转换为大写)。我可以获得基本行为,可能适合您的需求,如下所示:
# @!visibility private
# @!macro [attach] bar
# @!method $1()
# @return [String] always "$2"
def self.bar(name, value)
const_set(name, value)
end
bar :awesome, "cold Coke"
bar :lame, "warm Coke"
最终看起来有点像这样:
(String) awesome
(String) lame