класс ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy
Этот DeprecatedInstanceVariableProxy преобразует переменную экземпляра в устаревшую переменную экземпляра.
class Example
def initialize(deprecator)
@request = ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy.new(self, :request, :@request, deprecator)
@_request = :a_request
end
def request
@_request
end
def old_request
@request
end
end
Когда кто-то выполняет любой метод над переменной @request, это вызовет метод warn в deprecator_instance и получит переменную @_request с помощью метода request и выполнит тот же метод над переменной экземпляра без прокси.
По умолчанию используется устаревший метод ActiveSupport::Deprecation.
Публичные Классовые Методы
# File activesupport/lib/active_support/deprecation/proxy_wrappers.rb, line 79
def initialize(instance, method, var = "@#{method}", deprecator = ActiveSupport::Deprecation.instance)
@instance = instance
@method = method
@var = var
@deprecator = deprecator
end
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.