【问题标题】:YARD for keyword arguments with default hashYARD 用于具有默认哈希的关键字参数
【发布时间】:2017-01-27 07:01:13
【问题描述】:

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

def get_endpoint(params: {})
end

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

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

但是,YARD 自己的文档说:

注意:对于关键字参数,使用@param,而不是@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 哈希。有没有办法做到这一点?

【问题讨论】:

    标签: ruby yard yardoc


    【解决方案1】:

    该签名不使用 :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 以防万一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-06
      • 1970-01-01
      • 2014-01-31
      • 1970-01-01
      相关资源
      最近更新 更多