使用YARD

时间:2016-09-01 08:48:46

标签: ruby documentation metaprogramming yard

我目前正在开发一个gem并为其编写文档。我目前有一个类使用defined_method定义了几个方法,如下所示:

class Client
  ['one', 'two'].each do |method_name|
    # Sets the value
    # @param argument the argument to set.
    define_method("set_#{method_name}") do |argument|
      # Method content
    end
  end
end

我试图使用YARD记录这些方法,但是在生成项目文档时,这些方法没有出现在类文档中。

有谁知道我怎么能记录这些?我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

不是迭代任意列表,而是通常使用宏来定义方法,方法是将动态行为包装到类方法中,该方法可以在类中记录为DSL样式的调用:

  class << self
    private
    # @macro [attach] container.increment
    #   @method $1()
    #   Increment the $1 container.
    def make(name)
      define_method(name) { container.send(name).increment }
    end
  end

  make :lion
  make :pigeon
end

希望它适合你。