Sha256: 46e32d151ffd3a6f8a0e4a2cfcf7ff9a17859a9d530dd0e6636b7ebd5d11fe7c

Contents?: true

Size: 519 Bytes

Versions: 6

Compression:

Stored size: 519 Bytes

Contents

require "dry/monads/result"
require "dry/transaction/errors"

module Dry
  module Transaction
    class StepAdapters
      # @api private
      class Around
        include Dry::Monads::Result::Mixin

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

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

          result
        end
      end

      register :around, Around.new
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
dry-transaction-0.13.0 lib/dry/transaction/step_adapters/around.rb
dry-transaction-0.12.1 lib/dry/transaction/step_adapters/around.rb
dry-transaction-0.12.0 lib/dry/transaction/step_adapters/around.rb
dry-transaction-0.11.2 lib/dry/transaction/step_adapters/around.rb
dry-transaction-0.11.1 lib/dry/transaction/step_adapters/around.rb
dry-transaction-0.11.0 lib/dry/transaction/step_adapters/around.rb