Class: Synapse::ProcessManager::MappingProcess Abstract

Inherits:
Process
  • Object
show all
Defined in:
lib/synapse/process_manager/mapping/process.rb

Overview

This class is abstract.

Process that has the mapping DSL built-in

Examples:

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

Instance Attribute Summary

Attributes inherited from Process

#active, #correlations, #id

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Process

#initialize

Constructor Details

This class inherits a constructor from Synapse::ProcessManager::Process

Class Method Details

.map_event(type, *args, &block) ⇒ undefined

Parameters:

  • type (Class)
  • args (Object...)
  • block (Proc)

Returns:

  • (undefined)

See Also:

  • Mapper#map


26
27
28
# File 'lib/synapse/process_manager/mapping/process.rb', line 26

def self.map_event(type, *args, &block)
  event_mapper.map type, *args, &block
end

Instance Method Details

#event_mapperMapping::Mapper

Returns:



17
# File 'lib/synapse/process_manager/mapping/process.rb', line 17

class_attribute :event_mapper

#handle(event) ⇒ undefined

Parameters:

  • event (EventMessage)

Returns:

  • (undefined)


32
33
34
35
36
37
38
39
40
# 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