類別 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
陣列
的索引。
此方法傳回新建立的實體。
# 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=