class Synapse::ProcessManager::MappingProcess

Process that has the mapping DSL built-in

@example

class OrderProcess < MappingProcess
  map_event OrderCreatedEvent, correlate: :order_id, start: true do |event|
    # ...
  end

  map_event OrderFinishedEvent, correlate: :order_id, finish: true, to: :on_finish
end

@abstract

Public Class Methods

map_event(type, *args, &block) click to toggle source

@see Mapper#map @param [Class] type @param [Object…] args @param [Proc] block @return [undefined]

# File lib/synapse/process_manager/mapping/process.rb, line 26
def self.map_event(type, *args, &block)
  event_mapper.map type, *args, &block
end

Public Instance Methods

handle(event) click to toggle source

@param [EventMessage] event @return [undefined]

# File lib/synapse/process_manager/mapping/process.rb, line 32
def handle(event)
  return unless @active

  mapping = event_mapper.mapping_for event.payload_type
  if mapping
    mapping.invoke self, event.payload, event
    finish if mapping.options[:finish]
  end
end