Yard doc和`define_method`

JoJ*_*JoS 7 ruby documentation yard

有没有办法评论define_methodYardDoc中定义的方法?

我试过这个:

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

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

Ste*_*fan 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
Run Code Online (Sandbox Code Playgroud)

YARD输出:

- (String) one_way
Run Code Online (Sandbox Code Playgroud)

单向的

返回:

(String) - 单向


- (String) three_way
Run Code Online (Sandbox Code Playgroud)

三种方式

返回:

(String) - 三种方式


- (String) two_way
Run Code Online (Sandbox Code Playgroud)

这两种方式

返回:

(String) - 双向

  • @masciugo因为YARD没有执行代码. (2认同)