类 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 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_notifier=(value) 点击切换源代码
设置此对象的级别通知器。
当给定的 value
是 AbstractNotifier
的实例时,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=