Spec-Zone.ru › Ruby on Rails 7.2

модуль 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 111
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 119
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