Class: RubyReactor::Map::Execution

Inherits:
Object
  • Object
show all
Extended by:
Helpers
Defined in:
lib/ruby_reactor/map/execution.rb

Class Method Summary collapse

Methods included from Helpers

apply_collect_block, build_element_inputs, load_parent_context_from_storage, resolve_reactor_class, resume_parent_execution

Class Method Details

.perform(arguments) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/ruby_reactor/map/execution.rb', line 8

def self.perform(arguments)
  arguments = arguments.transform_keys(&:to_sym)
  storage = RubyReactor.configuration.storage_adapter

  parent_context = load_parent_context_from_storage(
    arguments[:parent_context_id], arguments[:parent_reactor_class_name], storage
  )
  reactor_class = resolve_reactor_class(arguments[:reactor_class_info])
  inputs = ContextSerializer.deserialize_value(arguments[:serialized_inputs])

  results = execute_all_elements(
    source: inputs[:source], mappings: inputs[:mappings],
    reactor_class: reactor_class, parent_context: parent_context,
    storage_options: {
      map_id: arguments[:map_id], storage: storage,
      parent_reactor_class_name: arguments[:parent_reactor_class_name],
      strict_ordering: arguments[:strict_ordering]
    }
  )

  finalize_execution(results, parent_context, arguments[:step_name], arguments[:parent_reactor_class_name],
                     storage)
end