Class: IRB::Notifier::CompositeNotifier
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| 
         Class Chain: 
        
          self,
          AbstractNotifier
         
       | 
    |
| 
         Instance Chain: 
        
          self,
          AbstractNotifier
         
       | 
    |
| Inherits: | 
        IRB::Notifier::AbstractNotifier
        
  | 
    
| Defined in: | lib/irb/notifier.rb | 
Overview
A class that can be used to create a group of notifier objects with the intent of representing a leveled notification system for irb.
This class will allow you to generate other notifiers, and assign them the appropriate level for output.
The Notifier class provides a class-method def_notifier to create a new composite notifier. Using the first composite notifier object you create, sibling notifiers can be initialized with #def_notifier.
Class Method Summary
- 
    
      .new(prefix, base_notifier)  ⇒ CompositeNotifier 
    
    constructor
    
Create a new composite notifier object with the given
prefix, andbase_notifierto use for output. 
AbstractNotifier - Inherited
| .new | Creates a new ::IRB::Notifier object.  | 
    
Instance Attribute Summary
- 
    
      #level  
    
    rw
    
Alias for #level_notifier.
 - 
    
      #level_notifier  
      (also: #level)
    
    rw
    
Returns the leveled notifier for this object.
 - 
    
      #level_notifier=(value)  
      (also: #level=)
    
    rw
    
Sets the leveled notifier for this object.
 - 
    
      #notifiers  
    
    readonly
    
List of notifiers in the group.
 
AbstractNotifier - Inherited
| #notify? | A wrapper method used to determine whether notifications are enabled.  | 
    
| #prefix | The   | 
    
Instance Method Summary
- 
    
      #def_notifier(level, prefix = "")  
    
    
Creates a new LeveledNotifier in the composite #notifiers group.
 
AbstractNotifier - Inherited
| #exec_if | Execute the given block if notifications are enabled.  | 
    
| #pp | Same as   | 
    
| #ppx | Same as   | 
    
See OutputMethod#print for more detail.  | 
    |
| #printf | See OutputMethod#printf for more detail.  | 
    
| #printn | See OutputMethod#printn for more detail.  | 
    
| #puts | See OutputMethod#puts for more detail.  | 
    
Constructor Details
    .new(prefix, base_notifier)  ⇒ CompositeNotifier 
  
Create a new composite notifier object with the given prefix, and base_notifier to use for output.
Instance Attribute Details
#level (rw)
Alias for #level_notifier.
# File 'lib/irb/notifier.rb', line 143
alias level level_notifier
#level_notifier (rw) Also known as: #level
Returns the leveled notifier for this object
# File 'lib/irb/notifier.rb', line 142
attr_reader :level_notifier
#level_notifier=(value) (rw) Also known as: #level=
Sets the leveled notifier for this object.
When the given value is an instance of AbstractNotifier, #level_notifier is set to the given object.
When an Integer is given, #level_notifier is set to the notifier at the index value in the #notifiers Array.
If no notifier exists at the index value in the #notifiers Array, an ErrUndefinedNotifier exception is raised.
An ErrUnrecognizedLevel exception is raised if the given value is not found in the existing #notifiers Array, or an instance of AbstractNotifier
# File 'lib/irb/notifier.rb', line 159
def level_notifier=(value) case value when AbstractNotifier @level_notifier = value when Integer l = @notifiers[value] Notifier.Raise ErrUndefinedNotifier, value unless l @level_notifier = l else Notifier.Raise ErrUnrecognizedLevel, value unless l end end
#notifiers (readonly)
List of notifiers in the group
# File 'lib/irb/notifier.rb', line 127
attr_reader :notifiers
Instance Method Details
#def_notifier(level, prefix = "")
Creates a new LeveledNotifier in the composite #notifiers group.
The given prefix will be assigned to the notifier, and #level will be used as the index of the #notifiers Array.
This method returns the newly created instance.
# File 'lib/irb/notifier.rb', line 135
def def_notifier(level, prefix = "") notifier = LeveledNotifier.new(self, level, prefix) @notifiers[level] = notifier notifier end