Sha256: dd16e67972de5155db4c23fd926413f6b2128027c6371424659d27bbba6142b1

Contents?: true

Size: 607 Bytes

Versions: 4

Compression:

Stored size: 607 Bytes

Contents

# frozen_string_literal: true

module Mihari
  module Mixins
    #
    # Unwrap error mixins
    #
    module UnwrapError
      def unwrap_error(err)
        return err unless err.is_a?(Dry::Monads::UnwrapError)

        # NOTE: UnwrapError's receiver can be either of:
        #       - Dry::Monads::Try::Error
        #       - Dry::Monads::Result::Failure
        receiver = err.receiver
        case receiver
        when Dry::Monads::Try::Error
          receiver.exception
        when Dry::Monads::Failure
          receiver.failure
        else
          err
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
mihari-6.3.0 lib/mihari/mixins/unwrap_error.rb
mihari-6.2.0 lib/mihari/mixins/unwrap_error.rb
mihari-6.1.0 lib/mihari/mixins/unwrap_error.rb
mihari-6.0.0 lib/mihari/mixins/unwrap_error.rb