class Hivent::Emitter

Constants

WILDCARD

Attributes

events[RW]

Public Class Methods

new() click to toggle source
# File lib/hivent/emitter.rb, line 11
def initialize
  @events = []
end

Public Instance Methods

broadcast(payload) click to toggle source
# File lib/hivent/emitter.rb, line 15
def broadcast(payload)
  emittable_event_names(payload.with_indifferent_access).each do |emittable_event_name|
    emit(emittable_event_name, payload)
  end
end
emit(name, *data) click to toggle source
Calls superclass method
# File lib/hivent/emitter.rb, line 21
def emit(name, *data)
  super(name.to_sym, *data)
end

Private Instance Methods

emittable_event_names(payload) click to toggle source
# File lib/hivent/emitter.rb, line 27
def emittable_event_names(payload)
  [
    event_name(payload),
    [event_name(payload), event_version(payload)].join(":"),
    WILDCARD
  ]
end
event_name(payload) click to toggle source
# File lib/hivent/emitter.rb, line 35
def event_name(payload)
  payload[:meta].try(:[], :name)
end
event_version(payload) click to toggle source
# File lib/hivent/emitter.rb, line 39
def event_version(payload)
  payload[:meta].try(:[], :version)
end