Sha256: 05651e3c74db73c07c63881644c098d82eb3b68460008659c67de176fef5b3c2

Contents?: true

Size: 633 Bytes

Versions: 2

Compression:

Stored size: 633 Bytes

Contents

require_relative '../abstract_validator'
require_relative 'hash_validator'

module StValidation
  module Validators
    # Use this when you don't care if there're extra keys set
    class HashSubsetValidator < AbstractValidator
      def initialize(blueprint, factory = StValidation.basic_factory)
        @keys = blueprint.keys
        @hash_validator = StValidation::Validators::HashValidator.new(blueprint, factory)
      end

      def call(value)
        return false unless value.is_a?(Hash)

        @hash_validator.call(value.slice(*keys))
      end

      private

      attr_reader :keys, :hash_validator
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
st_validation-0.2.0 lib/st_validation/validators/hash_subset_validator.rb
st_validation-0.1.0 lib/st_validation/validators/hash_subset_validator.rb