Sha256: 21c83b3e0a4a8040c59624e0b6008edd5372d73bb385aa33a2224c38af297ff6

Contents?: true

Size: 851 Bytes

Versions: 2

Compression:

Stored size: 851 Bytes

Contents

module Dry
  module Validation
    class Schema::Result
      include Dry::Equalizer(:params, :messages)
      include Enumerable

      attr_reader :params

      attr_reader :result

      attr_reader :errors

      attr_reader :error_compiler

      def initialize(params, result, errors, error_compiler)
        @params = params
        @result = result
        @errors = errors
        @error_compiler = error_compiler
      end

      def each(&block)
        failures.each(&block)
      end

      def empty?
        errors.empty?
      end

      def to_ary
        errors.map(&:to_ary)
      end

      def messages(options = {})
        @messages ||= error_compiler.with(options).(errors.map(&:to_ary))
      end

      def successes
        result.successes
      end

      def failures
        result.failures
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dry-validation-0.3.1 lib/dry/validation/schema/result.rb
dry-validation-0.3.0 lib/dry/validation/schema/result.rb