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 |
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
LeveledNotifierin 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 141
alias level level_notifier
#level_notifier (rw) Also known as: #level
Returns the leveled notifier for this object
# File 'lib/irb/notifier.rb', line 140
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 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
#notifiers (readonly)
List of notifiers in the group
# File 'lib/irb/notifier.rb', line 125
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 133
def def_notifier(level, prefix = "") notifier = LeveledNotifier.new(self, level, prefix) @notifiers[level] = notifier notifier end