5

次のようなメソッドがあります。

def get_endpoint(params: {})
end

このメソッドの呼び出し元が、いくつかのオプションのパラメーターを渡せるようにしたいと考えています。

これをサポートする YARD ドキュメントを書きたいと思います。キーワード引数を使用していない場合は、@option 宣言を使用します。

ただし、YARD 自身のドキュメントには次のように書かれています。

注: キーワード パラメータには、@option ではなく @param を使用します。

だから私は試しました:

  # @param params [Hash] options to be used in request
  # @param date [String] date in YYYYMMDD
  # @param start_time [Integer] start_time in Epoch

YARD はparams私が使用しているキーワード引数しか認識しないため、これは失敗します。正確な失敗は次のとおりです。

@param tag has unknown parameter name: date

そこで、キーワード@optionに置き換えた構文を使用しようとしました。param

  # @param params [Hash] options to be used in request
  # @param params [String] :date in YYYYMMDD
  # @param params [Integer] :start_time in Epoch

その結果、別のエラーが発生します。

@param tag has duplicate parameter name: params

params理想的には、このメソッドのユーザーが使用できる 3 つまたは 4 つのオプションでハッシュを記述したいと考えています。これを行う方法はありますか?

4

1 に答える 1

8

:dateその署名は、またはのキーワード引数を使用しません:start_time。これらの引数のキーワード引数は、次のように指定します。

def get_endpoint(date:, start_time:)

@optionHashあなたの場合にオプションに含まれるオプションを指定することを特に意図していますparams。キーワード引数を使用しているため、キーワード引数を明確に識別するために、これにもタグをparams追加することをお勧めします。@param例えば:

@param params [Hash]  options to be used in request
@option params [String] :date in YYYYMMDD
@option params [Integer] :start_time in Epoch

念のためのドキュメント@options

于 2016-09-19T14:54:09.950 に答える