модуль 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=.
Атрибуты
Определяет, нужно ли выводить трассировку стека вместе с предупреждением.
Открытые методы экземпляра
# File activesupport/lib/active_support/deprecation/behaviors.rb, line 74 def behavior @behavior ||= [DEFAULT_BEHAVIORS[:stderr]] end
Возвращает текущее поведение. Если поведение не установлено, используется значение по умолчанию :stderr.
# 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 опции, но более производительно.
# File activesupport/lib/active_support/deprecation/behaviors.rb, line 79 def disallowed_behavior @disallowed_behavior ||= [DEFAULT_BEHAVIORS[:raise]] end
Возвращает текущее поведение для запрещённых предупреждений об устаревании. Если поведение не установлено, используется значение по умолчанию :raise.
# 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.