9

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 # …

誰かが宝石やこれを行う方法を知っていれば、これを行うためにヤード拡張を作成しようとすることを避けることができます.

4

3 に答える 3

5

さらに実験を重ねた結果、これが非常にうまく機能することがわかりました。

  # @!method size
  #   @see Array#size
  # @!method <<
  #   @see Array#<<
  # @!method blah
  #   @see Array#blah
  def_delegators :@xs, :size, :<<, :blah # …

これを 1 行または 2 行で行う方法はかなりありますが、拡張機能を作成する作業と比較すると、これは非常に受け入れやすいと思います。


アップデート:

これは、委任されたメソッドのドキュメントへのリンクがより適切であることがわかりました。

  # @!method size
  #   @return (see Array#size)

これは、既に文書化されている戻り値を Array#size メソッドから取得します。他のタグもこれを行うと思います。まだかなり冗長ですが、許容範囲です。

于 2013-02-15T09:35:34.033 に答える