Class: DSPy::Events::BaseSubscriber

Inherits:
Object
  • Object
show all
Defined in:
lib/dspy/events/subscribers.rb

Overview

Base subscriber class for event-driven patterns This provides the foundation for creating custom event subscribers

Example usage:

class MySubscriber < DSPy::Events::BaseSubscriber
  def subscribe
    add_subscription('llm.*') do |event_name, attributes|
      # Handle LLM events
    end
  end
end

subscriber = MySubscriber.new
# subscriber will start receiving events
subscriber.unsubscribe # Clean up when done

Instance Method Summary collapse

Constructor Details

#initializeBaseSubscriber

Returns a new instance of BaseSubscriber.



21
22
23
# File 'lib/dspy/events/subscribers.rb', line 21

def initialize
  @subscriptions = []
end

Instance Method Details

#subscribeObject

Raises:

  • (NotImplementedError)


25
26
27
# File 'lib/dspy/events/subscribers.rb', line 25

def subscribe
  raise NotImplementedError, "Subclasses must implement #subscribe"
end

#unsubscribeObject



29
30
31
32
# File 'lib/dspy/events/subscribers.rb', line 29

def unsubscribe
  @subscriptions.each { |id| DSPy.events.unsubscribe(id) }
  @subscriptions.clear
end