class EventStoreClient::Subscriptions

Attributes

connection[R]
service[R]
subscriptions[R]

Public Class Methods

new(connection:, service: 'default') click to toggle source
# File lib/event_store_client/subscriptions.rb, line 32
def initialize(connection:, service: 'default')
  @connection = connection
  @service = service
  @subscriptions = []
end

Public Instance Methods

create(subscriber, event_types, options: {}) click to toggle source
# File lib/event_store_client/subscriptions.rb, line 5
def create(subscriber, event_types, options: {})
  subscription = Subscription.new(subscriber, event_types: event_types, service: service)

  unless @subscriptions.detect { |sub| sub.name == subscription.name }
    connection.subscribe_to_stream(subscription, options: options)
    subscriptions << subscription
  end

  subscription
end
each() { |subscription| ... } click to toggle source
# File lib/event_store_client/subscriptions.rb, line 16
def each
  subscriptions.each do |subscription|
    yield(subscription)
  end
end
listen(subscription) click to toggle source
# File lib/event_store_client/subscriptions.rb, line 22
def listen(subscription)
  connection.listen(subscription, options: { interval: 1, count: 10 }) do |event|
    subscription.subscriber.call(event)
  end
end