Class: AgentHarness::CallbackRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/agent_harness/configuration.rb

Overview

Registry for event callbacks

Instance Method Summary collapse

Constructor Details

#initializeCallbackRegistry

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

Parameters:

  • event (Symbol)

    the event name

  • data (Hash)

    event data



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.message}")
  end
end

#register(event, block) ⇒ void

This method returns an undefined value.

Register a callback for an event

Parameters:

  • event (Symbol)

    the event name

  • block (Proc)

    the callback



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

Parameters:

  • event (Symbol)

    the event name

Returns:

  • (Boolean)

    true if callbacks exist



295
296
297
# File 'lib/agent_harness/configuration.rb', line 295

def registered?(event)
  @callbacks[event].any?
end