0

我正在寻找迭代 yardoc 寄存器的方法@macro。我知道您可以按如下方式使用它们:

class Post
  include DataMapper::Resource

  # @macro dm.property
  # @return [$2] the $1 $0 of the post
  property :title, String
end

并且您可以生成由逗号分隔的寄存器表示的参数,就好像您正在获取数组的一部分,如下所示:

# @macro dsl_method
# @method $1(${2--2})
# @return [${-1}] the return value of $0
create_method_with_args :foo, :a, :b, :c, String

生成:foo(a, b, c)returns (String) the return value of create_method_with_args我有兴趣调用类似的东西(${2--1}).each do |$arg|并做文档说每个参数都有一行文档。

4

1 回答 1

1

不幸的是,宏是减少文档干燥度的极其简单的工具。出于安全考虑(您可能不希望 Ruby 在您的评论中运行),我们选择不实施可执行宏。它们并不是真正适用于所有问题的万能解决方案,但它们在非常简单的情况下运行良好。对于更复杂的情况,插件仍然是推荐的方法。

也就是说,由于您仍然需要在某处指定实际参数文档,所以我看不出插件如何为您简化任何事情。如果我是你,我会像你已经拥有的那样简单地定义它,并使用@param标签分别定义每个参数。例如(假设宏以前是按照您在问题中所做的方式“附加”的):

# @param [String] a documentation for a
# @param [Symbol] b documentation for b
# @param [Hash] c documentation for c
create_method_with_args :bar, :a, :b, :c, Fixnum

这对我来说似乎很合理,因为在这些文档中没有什么可以干掉的。

于 2012-04-27T04:45:11.650 回答