Yard doc和`define_method`

时间:2015-02-09 15:19:28

标签: ruby documentation yard

有没有办法在YardDoc中评论使用define_method定义的方法?

我试过了:

%w(one two three).each do |type|
  # The #{type} way
  # @return [String] the #{type} way
  define_method("#{type}_way") do ... end
end

但是,不幸的是,没有工作。

1 个答案:

答案 0 :(得分:8)

如果将方法创建移动到类方法中,则可以使用宏:

class Foo

  # @!macro [attach] generate
  #   @method $1_way
  #   The $1 way
  #   @return [String] the $1 way
  def self.generate(type)
    define_method("#{type}_way") do
    end
  end

  generate :one
  generate :two
  generate :three

end

YARD输出:

- (String) one_way
     

单向

     

<强>返回:

     

String) - 单程

     
- (String) three_way
     

三通

     

<强>返回:

     

String) - 三路

     
- (String) two_way
     

双向

     

<强>返回:

     

String) - 双向