類別 IRB::Notifier::CompositeNotifier

一個類別,可用於建立一組通知器物件,目的是為 irb 建立一個分級通知系統。

這個類別允許你產生其他通知器,並為它們指定適當的輸出等級。

Notifier 類別提供類別方法 Notifier.def_notifier 來建立一個新的複合通知器。使用你建立的第一個複合通知器物件,可以使用 def_notifier 來初始化兄弟通知器。

屬性

level[R]

傳回此物件的分級通知器

level_notifier[R]

傳回此物件的分級通知器

notifiers[R]

群組中的通知器清單

公開類別方法

new(prefix, base_notifier) 按一下以切換來源

建立一個新的複合通知器物件,使用給定的 prefixbase_notifier 來輸出。

呼叫超類別方法 IRB::Notifier::AbstractNotifier::new
# 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=(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=