Spec-Zone.ru › Ruby 2.7

Модуль Warning

Модуль Warning содержит один метод с именем warn, и модуль расширяет сам себя, делая Warning.warn доступным. Warning.warn вызывается для всех предупреждений, выданных Ruby. По умолчанию, предупреждения выводятся в $stderr.

Переопределяя Warning.warn, вы можете изменить то, как Ruby обрабатывает предупреждения, либо отфильтровывая некоторые предупреждения, либо выводя предупреждения в другое место, помимо $stderr. При переопределении Warning.warn, можно вызвать super, чтобы получить поведение по умолчанию — вывести предупреждение в $stderr.

Методы класса

[](p1) Показать исходный код
static VALUE
rb_warning_s_aref(VALUE mod, VALUE category)
{
    rb_warning_category_t cat = rb_warning_category_from_name(category);
    if (rb_warning_category_enabled_p(cat))
        return Qtrue;
    return Qfalse;
}

call-seq

Warning[category]  -> true or false

Возвращает флаг для отображения сообщений предупреждения для category. Поддерживаемые категории:

:deprecated

предупреждения о устаревании

  • присвоение ненулевого значения $, и $;

  • ключевые аргументы

  • proc/lambda без блока

и т.д.

:experimental

экспериментальные возможности

  • Сопоставление с образцом

[]=(p1, p2) Показать исходный код
static VALUE
rb_warning_s_aset(VALUE mod, VALUE category, VALUE flag)
{
    unsigned int mask = rb_warning_category_mask(category);
    unsigned int disabled = warning_disabled_categories;
    if (!RTEST(flag))
        disabled |= mask;
    else
        disabled &= ~mask;
    warning_disabled_categories = disabled;
    return flag;
}

call-seq

Warning[category] = flag -> flag

Устанавливает флаги предупреждений для category. См. Warning.[] для категорий.

Методы экземпляра

warn(msg) → nil Показать исходный код
static VALUE
rb_warning_s_warn(VALUE mod, VALUE str)
{
    Check_Type(str, T_STRING);
    rb_must_asciicompat(str);
    rb_write_error_str(str);
    return Qnil;
}

Записывает сообщение предупреждения msg в $stderr. Этот метод вызывается Ruby для всех выводимых предупреждений.

Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API