модуль 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 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, но более производительно.
# 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 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.