迭代一个Yardoc的寄存器`@ macro`(Iterating over the registe

2019-07-29 03:42发布

我正在寻找的方式来遍历一个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| 并做文档说,每个PARAMS与文档的单行。

Answer 1:

不幸的是宏减少文档的干一个非常简单的工具。 我们选择了实现出于安全考虑,可执行宏(你可能不希望红宝石您的意见运行)。 他们是不是真的一个尺寸适合所有人的解决所有问题,但他们在非常简单的情况下工作。 插件是仍然走的更复杂的情况是推荐的方式。

这就是说,因为你仍然必须从某个地方指定的实际参数文件,我没有看到一个插件会怎么连简化你什么。 如果我是你,我会简单地定义它,你已经拥有,并使用@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

这似乎是很合理的,我的,因为没有太多别的,你可以在这些文档干涸。



文章来源: Iterating over the registers of a Yardoc `@macro`