Sha256: c81ac6cdcafde0756fa32cd137d25b01f90d114ecc2df1a850e323df63b44b45

Contents?: true

Size: 488 Bytes

Versions: 7

Compression:

Stored size: 488 Bytes

Contents

# frozen_string_literal: true

module Strict
  module Validators
    class RangeOf
      attr_reader :element_validator

      def initialize(element_validator)
        @element_validator = element_validator
      end

      def ===(value)
        Range === value && [value.begin, value.end].compact.all? do |v|
          element_validator === v
        end
      end

      def inspect
        "RangeOf(#{element_validator.inspect})"
      end
      alias to_s inspect
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
strict-1.5.0 lib/strict/validators/range_of.rb
strict-1.4.0 lib/strict/validators/range_of.rb
strict-1.3.1 lib/strict/validators/range_of.rb
strict-1.3.0 lib/strict/validators/range_of.rb
strict-1.2.0 lib/strict/validators/range_of.rb
strict-1.1.0 lib/strict/validators/range_of.rb
strict-1.0.0 lib/strict/validators/range_of.rb