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.
268 269 270 |
# File 'lib/agent_harness/configuration.rb', line 268 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
286 287 288 289 290 291 292 |
# File 'lib/agent_harness/configuration.rb', line 286 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
277 278 279 |
# File 'lib/agent_harness/configuration.rb', line 277 def register(event, block) @callbacks[event] << block end |
#registered?(event) ⇒ Boolean
Check if any callbacks are registered for an event
298 299 300 |
# File 'lib/agent_harness/configuration.rb', line 298 def registered?(event) @callbacks[event].any? end |