Module: Events::Subscriber

Included in:
Events::Subscribers::MessageCollector, Events::Subscribers::Persister
Defined in:
lib/events/subscriber.rb

Overview

Interface for event bus subscribers. Include this module and implement #emit to receive Rails.event notifications.

The #emit method receives a Hash from Rails Structured Event Reporter:

{ name: "anima.user_message",
  payload: { type: "user_message", content: "hello", ... },
  timestamp: <nanosecond Integer> }

Examples:

class MySubscriber
  include Events::Subscriber

  def emit(event)
    content = event.dig(:payload, :content)
    # handle event...
  end
end

Instance Method Summary collapse

Instance Method Details

#emit(event) ⇒ Object

Raises:

  • (NotImplementedError)


22
23
24
# File 'lib/events/subscriber.rb', line 22

def emit(event)
  raise NotImplementedError, "#{self.class} must implement #emit"
end