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.



473
474
475
# File 'lib/agent_harness/configuration.rb', line 473

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



491
492
493
494
495
496
497
# File 'lib/agent_harness/configuration.rb', line 491

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



482
483
484
# File 'lib/agent_harness/configuration.rb', line 482

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



503
504
505
# File 'lib/agent_harness/configuration.rb', line 503

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