Sha256: 78942fddb80426612294aa1d09a55550e5d79e987966181606d0fabedfe64b77

Contents?: true

Size: 582 Bytes

Versions: 2

Compression:

Stored size: 582 Bytes

Contents

# frozen_string_literal: true

require "dry/matcher"

module Dry
  module Transaction
    ResultMatcher = Dry::Matcher.new(
      success: Dry::Matcher::Case.new(
        match: -> result { result.success? },
        resolve: -> result { result.value! }
      ),
      failure: Dry::Matcher::Case.new(
        match: -> result, step_name = nil {
          if step_name
            result.failure? && result.failure.step.name == step_name
          else
            result.failure?
          end
        },
        resolve: -> result { result.failure.value }
      )
    )
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dry-transaction-0.16.0 lib/dry/transaction/result_matcher.rb
dry-transaction-0.15.0 lib/dry/transaction/result_matcher.rb