class HecksApp::ApplicationPort::Event

Public Class Methods

emit(event) click to toggle source
# File lib/application_port/event.rb, line 14
def self.emit(event)
  instance.emit(event)
end
new() click to toggle source
# File lib/application_port/event.rb, line 6
def initialize
  @subscriptions = {}
end
subscribe(subscriber, event) click to toggle source
# File lib/application_port/event.rb, line 10
def self.subscribe(subscriber, event)
  instance.subscribe(subscriber, event)
end

Public Instance Methods

emit(event) click to toggle source
# File lib/application_port/event.rb, line 23
def emit(event)
  return unless @subscriptions[event]

  @subscriptions[event].each do |subscriber|
    subscriber.notify(event)
  end
end
subscribe(subscriber, event) click to toggle source
# File lib/application_port/event.rb, line 18
def subscribe(subscriber, event)
  @subscriptions[event] ||= []
  @subscriptions[event] << subscriber
end