Spec-Zone.ru › Ruby on Rails 8.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 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, но работает эффективнее.

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