YARD 用于具有默认哈希值的关键字参数

YARD for keyword arguments with default hash

我有一个看起来像这样的方法:

def get_endpoint(params: {})
end

我希望这个方法的调用者能够传入一些可选参数。

我想编写 YARD 文档来支持这一点,如果我不使用关键字参数,我会使用 @option 声明。

但是,YARD 自己的文档说:

Note: For keyword parameters, use @param, not @option.

所以我尝试了:

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

理想情况下,我想用此方法的用户可以使用的 3 或 4 个选项来描述 params 哈希。有办法吗?

该签名不使用 :date:start_time 的关键字参数。这些参数的关键字参数将被指定为类似:

def get_endpoint(date:, start_time:)

@option 专门用于指定将包含在选项 Hash 中的选项,在您的案例 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

Documentation for @options 以防万一。