Sha256: 2544292868a14266b2fe7d2569890cc422aac0f65ae657647cecd334d4866bfd

Contents?: true

Size: 478 Bytes

Versions: 2

Compression:

Stored size: 478 Bytes

Contents

# frozen_string_literal: true

module Dry
  module Transaction
    class StepAdapters
      # @api private
      class Around
        include Dry::Monads[:result]

        def call(operation, options, args, &block)
          result = operation.(*args, &block)

          unless result.is_a?(Dry::Monads::Result)
            raise InvalidResultError, options[:step_name]
          end

          result
        end
      end

      register :around, Around.new
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dry-transaction-0.16.0 lib/dry/transaction/step_adapters/around.rb
dry-transaction-0.15.0 lib/dry/transaction/step_adapters/around.rb