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.
265 266 267 |
# File 'lib/agent_harness/configuration.rb', line 265 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
283 284 285 286 287 288 289 |
# File 'lib/agent_harness/configuration.rb', line 283 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
274 275 276 |
# File 'lib/agent_harness/configuration.rb', line 274 def register(event, block) @callbacks[event] << block end |
#registered?(event) ⇒ Boolean
Check if any callbacks are registered for an event
295 296 297 |
# File 'lib/agent_harness/configuration.rb', line 295 def registered?(event) @callbacks[event].any? end |