Sha256: 2907d5b185b1d660ea72205fe123bd4e94036c8eb64b519a1534cd4dfc6b8835

Contents?: true

Size: 969 Bytes

Versions: 7

Compression:

Stored size: 969 Bytes

Contents

# frozen_string_literal: true

module Opera
  module Operation
    module Instructions
      module Executors
        class Operation < Executor
          def call(instruction)
            instruction[:kind] = :step
            operation_result = super
            save_information(operation_result)

            if operation_result.success?
              add_instruction_output(instruction, operation_result.output)
            else
              result.add_errors(operation_result.errors)
              result.add_exceptions(operation_result.exceptions)
            end

            execution = result.executions.pop
            result.executions << { execution => operation_result.executions }
          end

          private

          def save_information(operation_result)
            return unless operation_result.respond_to?(:information)

            result.add_information(operation_result.information)
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
opera-0.2.15 lib/opera/operation/instructions/executors/operation.rb
opera-0.2.14 lib/opera/operation/instructions/executors/operation.rb
opera-0.2.13 lib/opera/operation/instructions/executors/operation.rb
opera-0.2.12 lib/opera/operation/instructions/executors/operation.rb
opera-0.2.11 lib/opera/operation/instructions/executors/operation.rb
opera-0.2.10 lib/opera/operation/instructions/executors/operation.rb
opera-0.2.9 lib/opera/operation/instructions/executors/operation.rb