11

YARDを使用してRubyGemのドキュメントを作成しています。私のgemには、モジュールがクラスに含まれているこの一般的なルビーパターンに従うコードがあり、そのモジュールはインスタンスメソッドを追加するだけでなく、クラスメソッドも追加します。

module Moo
  def self.included(klass)
    klass.extend ClassMethods
  end

  module ClassMethods
    def hello
      puts "hello"
    end
  end
end

class Foo
  include Moo
end

Foo.hello  # => class method runs, printing "hello"

デフォルトでは、YARDは次のようなFooクラスのドキュメントを生成します。

Fooクラスの不十分なドキュメント

このドキュメントは、メソッドが利用可能であることをユーザーに通知していないため、不十分だと思います。Foo.helloについて学ぶhelloには、ユーザーはをクリックしてからをクリックする必要がありMooますClassMethods

Foo1ページにすべてのクラスメソッドとインスタンスメソッドのリストがあると便利です。どうすればそれを実現できますか?コードを変更する必要がありますか、それともYARDにヒントを与えるために追加できるタグがありClassMethodsますか?

4

1 に答える 1

8

v0.8.0以降では、 @!parseディレクティブを使用できます。

class Foo
  include Moo
  # @!parse extend Moo::ClassMethods
end
于 2013-07-07T01:12:18.147 に答える