Sha256: 4dba7704fa46c4f1e442265be10f13fb693340ac9afc6ae6665ef7cd3ecd1ed8

Contents?: true

Size: 762 Bytes

Versions: 18

Compression:

Stored size: 762 Bytes

Contents

# typed: strict

module Typed
  module Validations
    class ValidationResults < T::Struct
      extend T::Sig

      const :results, T::Array[ValidationResult]

      sig { returns(Result[ValidatedParams, ValidationError]) }
      def combine
        failing_results = results.select(&:failure?)

        case failing_results.length
        when 0
          Success.new(
            results.each_with_object({}) do |result, validated_params|
              validated_params[result.payload.name] = result.payload.value
            end
          )
        when 1
          Failure.new(T.must(failing_results.first).error)
        else
          Failure.new(MultipleValidationError.new(errors: failing_results.map(&:error)))
        end
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
sorbet-schema-0.9.2 lib/typed/validations/validation_results.rb
sorbet-schema-0.9.1 lib/typed/validations/validation_results.rb
sorbet-schema-0.9.0 lib/typed/validations/validation_results.rb
sorbet-schema-0.8.0 lib/typed/validations/validation_results.rb
sorbet-schema-0.7.2 lib/typed/validations/validation_results.rb
sorbet-schema-0.7.1 lib/typed/validations/validation_results.rb
sorbet-schema-0.7.0 lib/typed/validations/validation_results.rb
sorbet-schema-0.6.0 lib/typed/validations/validation_results.rb
sorbet-schema-0.5.1 lib/typed/validations/validation_results.rb
sorbet-schema-0.4.2 lib/typed/validations/validation_results.rb
sorbet-schema-0.4.1 lib/typed/validations/validation_results.rb
sorbet-schema-0.4.0 lib/typed/validations/validation_results.rb
sorbet-schema-0.3.0 lib/typed/validations/validation_results.rb
sorbet-schema-0.2.2 lib/typed/validations/validation_results.rb
sorbet-schema-0.2.1 lib/typed/validations/validation_results.rb
sorbet-schema-0.2.0 lib/typed/validations/validation_results.rb
sorbet-schema-0.1.1 lib/typed/validations/validation_results.rb
sorbet-schema-0.1.0 lib/typed/validations/validation_results.rb