класс ActiveSupport::Deprecation
Устаревание в Active Support
Deprecation задаёт API, используемый Rails для пометки методов, переменных экземпляра, объектов и констант как устаревших. Он также доступен для гемов и приложений.
В геме используйте Deprecation.new, чтобы создать объект Deprecation и сохранить его в своём модуле или классе (чтобы пользователи могли его настраивать).
module MyLibrary
def self.deprecator
@deprecator ||= ActiveSupport::Deprecation.new("2.0", "MyLibrary")
end
end
Для Railtie или Engine вы также можете добавить его в список deprecators приложения, чтобы к нему можно было применить настройки конфигурации приложения.
module MyLibrary
class Railtie < Rails::Railtie
initializer "my_library.deprecator" do |app|
app.deprecators[:my_library] = MyLibrary.deprecator
end
end
end
С приведённым выше инициализатором такие параметры конфигурации, как следующие, будут влиять на MyLibrary.deprecator:
# in config/environments/test.rb config.active_support.deprecation = :raise
Константы
- DEFAULT_BEHAVIORS
-
Поведение предупреждений по умолчанию в зависимости от
Rails.env.
Атрибуты
Номер версии, в которой устаревшее поведение будет удалено по умолчанию.
Открытые методы класса
# File activesupport/lib/active_support/deprecation.rb, line 71 def initialize(deprecation_horizon = "8.2", gem_name = "Rails") self.gem_name = gem_name self.deprecation_horizon = deprecation_horizon # By default, warnings are not silenced and debugging is off. self.silenced = false self.debug = false @silence_counter = Concurrent::ThreadLocalVar.new(0) @explicitly_allowed_warnings = Concurrent::ThreadLocalVar.new(nil) end
При инициализации он принимает два параметра. Первый — версия библиотеки, второй — название библиотеки.
ActiveSupport::Deprecation.new('2.0', 'MyLibrary')
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.