2014-08-21 3 views
1

Я переименовал некоторые атрибуты в свой Ruby mqtt gem, чтобы соответствовать новому MQTT specification. Я делаю это, переименовывая атрибут, а затем используя alias_method, чтобы убедиться, что старые методы все еще работают.Устранение переименованного атрибута в документации Ruby YARD

Вот пример того, что я сделал для переименования атрибутов:

# 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

По внешнему виду documentation вы должны указывать метод как устаревший. Что-то вроде

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

def bar 
    ... 
end 

Я понимаю, что это не так лаконично, как с помощью alias_method, но я думаю, что это единственный способ сделать это с ДВОРОМ.

+0

Согласитесь, что это не лучший способ сделать это. – njh

Смежные вопросы