Spec-Zone.ru › Ruby on Rails 7.1

class ActiveSupport::Deprecation

Parent:
Object
Included modules:
ActiveSupport::Deprecation::Behavior, ActiveSupport::Deprecation::Reporting, ActiveSupport::Deprecation::Disallowed, ActiveSupport::Deprecation::MethodWrapper

Активное Поддержка устаревания

Устаревание определяет API, используемый Rails для устаревания методов, переменных экземпляра, объектов и констант. Оно также доступно для драгоценных камней или приложений.

Для драгоценного камня, используйте Deprecation.new для создания объекта Deprecation и сохраните его в своем модуле или классе (чтобы пользователи могли его настроить).

module MyLibrary
  def self.deprecator
    @deprecator ||= ActiveSupport::Deprecation.new("2.0", "MyLibrary")
  end
end

Для Railtie или Engine, вы также можете добавить его в устаревающие приложения, чтобы конфигурация приложения могла быть применена к нему.

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 = "7.2", gem_name = "Rails") Показать исходный код
# File activesupport/lib/active_support/deprecation.rb, line 68
def initialize(deprecation_horizon = "7.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