Class: Prosody::EventHandler
- Inherits:
-
Object
- Object
- Prosody::EventHandler
- Extended by:
- ErrorClassification
- Defined in:
- lib/prosody/handler.rb,
sig/handler.rbs
Overview
Abstract base class for handling events from Prosody. Subclasses must implement all three handler methods.
Constant Summary collapse
- HANDLER_METHODS =
%i[on_message on_excise on_timer].freeze
Class Method Summary collapse
Instance Method Summary collapse
-
#on_excise(context, message) ⇒ Response
Process an excise record.
-
#on_message(context, message) ⇒ Response
Process a single message received from Prosody.
-
#on_timer(context, timer) ⇒ void
Process a timer that has fired.
Methods included from ErrorClassification
permanent, transient, wrap_errors
Class Method Details
.validate_handler!(handler) ⇒ void
This method returns an undefined value.
163 164 165 166 167 168 169 |
# File 'lib/prosody/handler.rb', line 163 def self.validate_handler!(handler) owners = handler.class.ancestors.take_while { |owner| owner != self } HANDLER_METHODS.each do |name| validate_method!(handler, owners, name) end end |
Instance Method Details
#on_excise(context, message) ⇒ Response
Process an excise record.
219 220 221 |
# File 'lib/prosody/handler.rb', line 219 def on_excise(context, ) raise NotImplementedError, "Subclasses must implement #on_excise" end |
#on_message(context, message) ⇒ Response
Process a single message received from Prosody. This method must be implemented by subclasses to define custom message handling logic.
209 210 211 |
# File 'lib/prosody/handler.rb', line 209 def (context, ) raise NotImplementedError, "Subclasses must implement #on_message" end |
#on_timer(context, timer) ⇒ void
This method returns an undefined value.
Process a timer that has fired. This method is called when a previously scheduled timer fires. This method must be implemented by subclasses to define custom timer handling logic.
230 231 232 |
# File 'lib/prosody/handler.rb', line 230 def on_timer(context, timer) raise NotImplementedError, "Subclasses must implement #on_timer" end |