在Ruby YARD文档中弃用重命名的属性

时间:2014-08-21 17:18:10

标签: ruby deprecated yard

我一直在重命名我的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

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

1 个答案:

答案 0 :(得分:0)

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

这样的东西
# @deprecated Use {#bar} instead.
def foo
  bar
end

def bar
  ...
end

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