使用Yardoc记录def_delegators

iai*_*ain 8 ruby documentation yard

我有一个使用Forwardable模块中的def_delegators方法的类.我还没有办法让Yardoc为它输出文档.我尝试过使用但它不会为这些特定方法输出任何内容(文件中的其他内容都很好,并且没有错误),而且我有几个不同的长度.def_delegators

例如

class A
  extend Forwardable
  # other code…

  # @!macro
  #   @see Array#$1
  #   @see Array#$2
  #   @see Array#$3
  def_delegators :@xs, :size, :<<, :blah # …
Run Code Online (Sandbox Code Playgroud)

如果有人知道宝石或这样做的方式,这意味着我可以避免尝试写Yard扩展来做到这一点,我将非常感激.

iai*_*ain 5

经过更多的实验,我发现这很好用:

  # @!method size
  #   @see Array#size
  # @!method <<
  #   @see Array#<<
  # @!method blah
  #   @see Array#blah
  def_delegators :@xs, :size, :<<, :blah # …
Run Code Online (Sandbox Code Playgroud)

很可能有一种方法可以在一两行中做到这一点,但是与编写扩展的工作相比,我觉得这是可以接受的。


更新:

我刚刚发现这将更好地链接到委托方法的文档:

  # @!method size
  #   @return (see Array#size)
Run Code Online (Sandbox Code Playgroud)

这将从Array#size方法获取已经记录的返回值。我希望其他标签也能做到这一点。它仍然很冗长,但是可以接受。