Sha256: 58f7444de612681c3f8c80c7a79eb1fa901752ad226c0b5c53308661b21b0232

Contents?: true

Size: 686 Bytes

Versions: 3

Compression:

Stored size: 686 Bytes

Contents

# frozen_string_literal: true

require 'dry/monads/result'

module Dry
  module Validation
    # Monad extension for contract results
    #
    # @example
    #   Dry::Validation.load_extensions(:monads)
    #
    #   contract = Dry::Validation::Contract.build do
    #     schema do
    #       required(:name).filled(:string)
    #     end
    #   end
    #
    #   contract.call(name: nil).to_monad
    #
    # @api public
    class Result
      include Dry::Monads::Result::Mixin

      # Returns a result monad
      #
      # @return [Dry::Monads::Result]
      #
      # @api public
      def to_monad
        success? ? Success(to_h) : Failure(self)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dry-validation-1.0.0.beta1 lib/dry/validation/extensions/monads.rb
dry-validation-1.0.0.alpha2 lib/dry/validation/extensions/monads.rb
dry-validation-1.0.0.alpha1 lib/dry/validation/extensions/monads.rb