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_notifier
to 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
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 147
alias level level_notifier
#level_notifier (rw) Also known as: #level
Returns the leveled notifier for this object
# File 'lib/irb/notifier.rb', line 146
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 163
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 131
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 139
def def_notifier(level, prefix = "") notifier = LeveledNotifier.new(self, level, prefix) @notifiers[level] = notifier notifier end