类 IRB::Notifier::CompositeNotifier

一个用于创建一组通知器对象的类,旨在为 irb 表示分级通知系统。

此类允许您生成其他通知器,并将它们分配给适当的输出级别。

Notifier 类提供了一个类方法 Notifier.def_notifier 用于创建一个新的复合通知器。使用您创建的第一个复合通知器对象,可以使用 def_notifier 初始化兄弟通知器。

属性

level[R]

返回此对象的级别通知器

level_notifier[R]

返回此对象的级别通知器

notifiers[R]

组中的通知器列表

公共类方法

new(prefix, base_notifier) 点击切换源代码

使用给定的 prefixbase_notifier 创建一个新的复合通知器对象,用于输出。

# File lib/irb/notifier.rb, line 117
def initialize(prefix, base_notifier)
  super

  @notifiers = [D_NOMSG]
  @level_notifier = D_NOMSG
end

公共实例方法

def_notifier(level, prefix = "") 点击切换源代码

在复合 notifiers 组中创建一个新的 LeveledNotifier

给定的 prefix 将分配给通知器,level 将用作 notifiers Array 的索引。

此方法返回新创建的实例。

# File lib/irb/notifier.rb, line 133
def def_notifier(level, prefix = "")
  notifier = LeveledNotifier.new(self, level, prefix)
  @notifiers[level] = notifier
  notifier
end
level=(value)
别名:level_notifier=
level_notifier=(value) 点击切换源代码

设置此对象的级别通知器。

当给定的 valueAbstractNotifier 的实例时,level_notifier 将设置为给定的对象。

当给定一个 Integer 时,level_notifier 将设置为 notifiers Array 中索引 value 处的通知器。

如果在 notifiers Array 中的索引 value 处不存在通知器,则会引发 ErrUndefinedNotifier 异常。

如果给定的 value 在现有的 notifiers Array 中找不到,或者不是 AbstractNotifier 的实例,则会引发 ErrUnrecognizedLevel 异常。

# File lib/irb/notifier.rb, line 157
def level_notifier=(value)
  case value
  when AbstractNotifier
    @level_notifier = value
  when Integer
    l = @notifiers[value]
    raise ErrUndefinedNotifier, value unless l
    @level_notifier = l
  else
    raise ErrUnrecognizedLevel, value unless l
  end
end
也称为:level=