Spec-Zone.ru › Ruby on Rails 7.1

модуль ActiveSupport::Deprecation::Behavior

Behavior модуль позволяет определить, как отображать сообщения об устаревании. Вы можете создать собственное поведение или установить любое из DEFAULT_BEHAVIORS констант. Доступные типы поведения:

raise

Выбросить ActiveSupport::DeprecationException.

stderr

Записать все предупреждения об устаревании в $stderr.

log

Записать все предупреждения об устаревании в Rails.logger.

notify

Использовать ActiveSupport::Notifications для уведомления deprecation.rails.

report

Использовать ActiveSupport::ErrorReporter для отчёта об устаревании.

silence

Ничего не делать. В Rails, установите config.active_support.report_deprecations = false для отключения всех типов поведения.

Настройка поведения влияет только на предупреждения об устаревании, которые происходят после загрузки. Для получения дополнительной информации ознакомьтесь с документацией метода behavior=.

Атрибуты

debug[RW]

Определяет, нужно ли выводить трассировку стека вместе с предупреждением.

Открытые методы экземпляра

behavior() Показать исходный код
# File activesupport/lib/active_support/deprecation/behaviors.rb, line 74
def behavior
  @behavior ||= [DEFAULT_BEHAVIORS[:stderr]]
end

Возвращает текущее поведение. Если поведение не установлено, используется значение по умолчанию :stderr.

behavior=(behavior) Показать исходный код
# File activesupport/lib/active_support/deprecation/behaviors.rb, line 109
def behavior=(behavior)
  @behavior = Array(behavior).map { |b| DEFAULT_BEHAVIORS[b] || arity_coerce(b) }
end

Устанавливает поведение указанным значением. Может быть одиночным значением, массивом или объектом, который отвечает на call.

Доступные типы поведения:

raise

Выбросить ActiveSupport::DeprecationException.

stderr

Записать все предупреждения об устаревании в $stderr.

log

Записать все предупреждения об устаревании в Rails.logger.

notify

Использовать ActiveSupport::Notifications для уведомления deprecation.rails.

report

Использовать ActiveSupport::ErrorReporter для отчёта об устаревании.

silence

Ничего не делать.

Настройка поведения влияет только на предупреждения об устаревании, происходящие после загрузки. Предупреждения об устаревании, поднятые gem, не затрагиваются этой настройкой, так как они происходят до запуска Rails.

deprecator = ActiveSupport::Deprecation.new
deprecator.behavior = :stderr
deprecator.behavior = [:stderr, :log]
deprecator.behavior = MyCustomHandler
deprecator.behavior = ->(message, callstack, deprecation_horizon, gem_name) {
  # custom stuff
}

Если вы используете Rails, вы можете установить config.active_support.report_deprecations = false для отключения всего поведения предупреждений об устаревании. Это аналогично silence опции, но более производительно.

disallowed_behavior() Показать исходный код
# File activesupport/lib/active_support/deprecation/behaviors.rb, line 79
def disallowed_behavior
  @disallowed_behavior ||= [DEFAULT_BEHAVIORS[:raise]]
end

Возвращает текущее поведение для запрещённых предупреждений об устаревании. Если поведение не установлено, используется значение по умолчанию :raise.

disallowed_behavior=(behavior) Показать исходный код
# File activesupport/lib/active_support/deprecation/behaviors.rb, line 117
def disallowed_behavior=(behavior)
  @disallowed_behavior = Array(behavior).map { |b| DEFAULT_BEHAVIORS[b] || arity_coerce(b) }
end

Устанавливает поведение для запрещённых предупреждений об устаревании (те, которые настроены ActiveSupport::Deprecation#disallowed_warnings=) указанным значением. Как и в behavior=, это может быть одиночное значение, массив или объект, который отвечает на call.

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

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