модуль 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-
Ничего не делать.
Настройка поведения влияет только на случаи устаревания, происходящие после запуска приложения. На предупреждения Deprecation, создаваемые гемами, эта настройка не влияет, поскольку они возникают до запуска 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.