Sha256: 9a27068d6a4b120b8fc20907155a9dd8c4445ff7fc474f32c54af83bccfe2659

Contents?: true

Size: 768 Bytes

Versions: 2

Compression:

Stored size: 768 Bytes

Contents

# frozen_string_literal: true

require 'dry/equalizer'
require 'dry/initializer'

module Dry
  module Validation
    # Rules are created by contracts
    #
    # @api private
    class Rule
      include Dry::Equalizer(:name, :block)

      extend Dry::Initializer

      # @!atrribute [r] keys
      #   @return [Array<Symbol, String, Hash>]
      #   @api private
      option :keys

      # @!atrribute [r] block
      #   @return [Proc]
      #   @api private
      option :block

      # Evaluate the rule within the provided context
      #
      # @param [Contract] context
      # @param [Object] values
      #
      # @api private
      def call(context, values)
        Evaluator.new(context, values: values, keys: keys, &block)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dry-validation-1.0.0.alpha2 lib/dry/validation/rule.rb
dry-validation-1.0.0.alpha1 lib/dry/validation/rule.rb