【问题标题】:Deprecating a renamed attribute in Ruby YARD documentation在 Ruby YARD 文档中弃用重命名的属性
【发布时间】:2014-10-15 10:24:13
【问题描述】:

我一直在重命名我的 Ruby mqtt gem 中的一些属性,以匹配新的 MQTT specification。我一直在通过重命名属性然后使用 alias_method 来确保旧方法仍然有效。

这是我为重命名属性所做的示例:

# The level number of the protocol
attr_accessor :protocol_level

# @deprecated Please use {#protocol_level} instead
alias_method :protocol_version, :protocol_level

# @deprecated Please use {#protocol_level=} instead
alias_method :protocol_version=, :protocol_level=

但是在生成的 YARD 文档中,它并没有将其标记为已弃用,实际上使它看起来像是一个不错的替代名称!

- (Object) protocol_level
Also known as: protocol_version
The level number of the protocol

最好的方法是什么?我应该使用普通的方法定义来定义旧的属性名称吗?我热衷于保持代码简洁。

【问题讨论】:

    标签: ruby deprecated yard


    【解决方案1】:

    根据documentation 的外观,您应该将方法标记为已弃用。类似的东西

    # @deprecated Use {#bar} instead.
    def foo
      bar
    end
    
    def bar
      ...
    end
    

    我意识到这不像使用 alias_method 那样简洁,但我认为这是使用 YARD 的唯一方法。

    【讨论】:

    • 同意似乎没有更好的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    相关资源
    最近更新 更多