我一直在重命名我的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
最好的方法是什么?我应该使用普通的方法定义来定义旧的属性名称吗?我热衷于保持代码简洁。
答案 0 :(得分:0)
根据documentation的外观,您应该将方法标记为已弃用。像
这样的东西# @deprecated Use {#bar} instead.
def foo
bar
end
def bar
...
end
我意识到这并不像使用alias_method
那样简洁,但我认为这是使用YARD做到这一点的唯一方法。