class Opera::Operation::Instructions::Executors::Operations
Public Instance Methods
call(instruction)
click to toggle source
rubocop:disable Metrics/MethodLength
Calls superclass method
Opera::Operation::Executor#call
# File lib/opera/operation/instructions/executors/operations.rb, line 11 def call(instruction) instruction[:kind] = :step operations_results = super return if result.exceptions.any? case operations_results when Array operations_results.each do |operation_result| raise_error unless operation_result.is_a?(Opera::Operation::Result) end failures = operations_results.select(&:failure?) if failures.any? add_failures(failures) else add_results(instruction, operations_results) end else raise_error end end
Private Instance Methods
add_failures(failures)
click to toggle source
rubocop:enable Metrics/MethodLength
# File lib/opera/operation/instructions/executors/operations.rb, line 38 def add_failures(failures) failures.each do |failure| result.add_errors(failure.errors) result.add_exceptions(failure.exceptions) end end
add_results(instruction, results)
click to toggle source
# File lib/opera/operation/instructions/executors/operations.rb, line 45 def add_results(instruction, results) add_instruction_output(instruction, results.map(&:output)) execution = result.executions.pop result.executions << { execution => results.map(&:executions) } end
raise_error()
click to toggle source
# File lib/opera/operation/instructions/executors/operations.rb, line 51 def raise_error raise WrongOperationsResultError, 'Have to return array of Opera::Operation::Result' end