class IRB::Notifier::CompositeNotifier
一个类,可用于创建一组通知器对象,目的是为 irb 表示分级通知系统。
这个类允许您生成其他通知器,并为它们分配适当的输出级别。
Notifier 类提供了一个类方法 Notifier.def_notifier 来创建一个新的复合通知器。使用您创建的第一个复合通知器对象,可以使用 def_notifier 初始化同级通知器。
属性
level[R]
返回此对象的分级通知器
level_notifier[R]
返回此对象的分级通知器
notifiers[R]
组中的通知器列表
公共类方法
new(prefix, base_notifier) 点击切换源代码
使用给定的 prefix 和用于输出的 base_notifier 创建一个新的复合通知器对象。
# File 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 数组的索引。
此方法返回新创建的实例。
# File irb/notifier.rb, line 133 def def_notifier(level, prefix = "") notifier = LeveledNotifier.new(self, level, prefix) @notifiers[level] = notifier notifier end
level_notifier=(value) 点击切换源代码
设置此对象的分级通知器。
当给定的 value 是 AbstractNotifier 的实例时,level_notifier 将设置为给定的对象。
当给定一个整数时,level_notifier 将被设置为 notifiers 数组中索引为 value 的通知器。
如果 notifiers 数组中索引 value 处不存在通知器,则会引发 ErrUndefinedNotifier 异常。
如果给定的 value 在现有的 notifiers 数组中找不到,或者不是 AbstractNotifier 的实例,则会引发 ErrUnrecognizedLevel 异常。
# File 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=