Class: AgentHarness::CallbackRegistry
- Inherits:
-
Object
- Object
- AgentHarness::CallbackRegistry
- Defined in:
- lib/agent_harness/configuration.rb
Overview
Registry for event callbacks
Instance Method Summary collapse
-
#emit(event, data) ⇒ void
Emit an event to all registered callbacks.
-
#initialize ⇒ CallbackRegistry
constructor
A new instance of CallbackRegistry.
-
#register(event, block) ⇒ void
Register a callback for an event.
-
#registered?(event) ⇒ Boolean
Check if any callbacks are registered for an event.
Constructor Details
#initialize ⇒ CallbackRegistry
Returns a new instance of CallbackRegistry.
421 422 423 |
# File 'lib/agent_harness/configuration.rb', line 421 def initialize @callbacks = Hash.new { |h, k| h[k] = [] } end |
Instance Method Details
#emit(event, data) ⇒ void
This method returns an undefined value.
Emit an event to all registered callbacks
439 440 441 442 443 444 445 |
# File 'lib/agent_harness/configuration.rb', line 439 def emit(event, data) @callbacks[event].each do |callback| callback.call(data) rescue => e AgentHarness.logger&.error("[AgentHarness::CallbackRegistry] Callback error for #{event}: #{e.}") end end |
#register(event, block) ⇒ void
This method returns an undefined value.
Register a callback for an event
430 431 432 |
# File 'lib/agent_harness/configuration.rb', line 430 def register(event, block) @callbacks[event] << block end |
#registered?(event) ⇒ Boolean
Check if any callbacks are registered for an event
451 452 453 |
# File 'lib/agent_harness/configuration.rb', line 451 def registered?(event) @callbacks[event].any? end |