class RubyEventStore::Broker
Attributes
dispatcher[R]
subscriptions[R]
Public Class Methods
new(subscriptions:, dispatcher:)
click to toggle source
# File lib/ruby_event_store/broker.rb, line 5 def initialize(subscriptions:, dispatcher:) @subscriptions = subscriptions @dispatcher = dispatcher end
Public Instance Methods
add_global_subscription(subscriber)
click to toggle source
# File lib/ruby_event_store/broker.rb, line 20 def add_global_subscription(subscriber) verify_subscription(subscriber) subscriptions.add_global_subscription(subscriber) end
add_subscription(subscriber, event_types)
click to toggle source
# File lib/ruby_event_store/broker.rb, line 15 def add_subscription(subscriber, event_types) verify_subscription(subscriber) subscriptions.add_subscription(subscriber, event_types) end
add_thread_global_subscription(subscriber)
click to toggle source
# File lib/ruby_event_store/broker.rb, line 30 def add_thread_global_subscription(subscriber) verify_subscription(subscriber) subscriptions.add_thread_global_subscription(subscriber) end
add_thread_subscription(subscriber, event_types)
click to toggle source
# File lib/ruby_event_store/broker.rb, line 25 def add_thread_subscription(subscriber, event_types) verify_subscription(subscriber) subscriptions.add_thread_subscription(subscriber, event_types) end
call(event, record)
click to toggle source
# File lib/ruby_event_store/broker.rb, line 10 def call(event, record) subscribers = subscriptions.all_for(event.event_type) subscribers.each { |subscriber| dispatcher.call(subscriber, event, record) } end
Private Instance Methods
verify_subscription(subscriber)
click to toggle source
# File lib/ruby_event_store/broker.rb, line 39 def verify_subscription(subscriber) raise SubscriberNotExist, "subscriber must be first argument or block" unless subscriber unless dispatcher.verify(subscriber) raise InvalidHandler.new("Handler #{subscriber} is invalid for dispatcher #{dispatcher}") end end