Spec-Zone.ru › Ruby on Rails 8.1

класс ActiveSupport::Deprecation

Родительский класс:
Object
Подключённые модули:
ActiveSupport::Deprecation::Behavior, ActiveSupport::Deprecation::Reporting, ActiveSupport::Deprecation::Disallowed, ActiveSupport::Deprecation::MethodWrapper

Устаревание в 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.

Атрибуты

deprecation_horizon [RW]

Номер версии, в которой устаревшее поведение будет удалено по умолчанию.

Открытые методы класса

new (deprecation_horizon = "8.2", gem_name = "Rails") Показать исходный код
# 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API