class Evostream::Event

Reacts to event

Constants

EVENTS

Public Class Methods

new(type, payload) click to toggle source
# File lib/evostream/event/event.rb, line 10
def initialize(type, payload)
  @payload = payload
  @model = type.sub(/^(\w)/, &:capitalize)
end

Public Instance Methods

execute_action() click to toggle source
# File lib/evostream/event/event.rb, line 15
def execute_action
  klass = "Evostream::Events::#{@model}".constantize
  Evostream.logger "Execute Action : #{klass}"
  execute_klass(klass) if EVENTS.include?(klass)
end

Private Instance Methods

execute_klass(klass) click to toggle source
# File lib/evostream/event/event.rb, line 23
def execute_klass(klass)
  name_flux = extract_name_flux
  Evostream.logger "Name Flux : #{name_flux}"
  Evostream.logger "Event : #{klass}"
  case [klass]
  when [Evostream::Events::OutStreamCreated]
    klass.new(name_flux, @payload).execute
  else
    # when [Evostream::Events::InStreamCreated]
    # when [Evostream::Events::InStreamClosed]
    klass.new(name_flux).execute
  end
end
extract_name_flux() click to toggle source
# File lib/evostream/event/event.rb, line 37
def extract_name_flux
  @payload[:name].gsub(Evostream::Service.name, '')
end