Sha256: a977c3992c344c46a03658a6648f60f73e547b5e91f97b6198b4cec06d63f4c1

Contents?: true

Size: 756 Bytes

Versions: 3

Compression:

Stored size: 756 Bytes

Contents

# frozen_string_literal: true

module Attribool::Validators
  ##
  # Ensures that a value is a boolean, unless strictness isn't enforced.
  class StrictBooleanValidator
    ##
    # Construct the validator.
    #
    # @param [Object] value
    #
    # @param [Boolean] strict
    def initialize(value, strict)
      @value = value
      @strict = strict
    end

    ##
    # Is +strict+ set to +false+, or is +@value+ a boolean?
    #
    # @return [Boolean]
    def valid?
      !@strict || [TrueClass, FalseClass].include?(@value.class)
    end

    ##
    # The exception to raise if validations fail.
    #
    # @return [ArgumentError] the exception with message
    def error
      ArgumentError.new("#{@value} is not a boolean")
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
attribool-2.0.5 lib/attribool/validators/strict_boolean_validator.rb
attribool-2.0.4 lib/attribool/validators/strict_boolean_validator.rb
attribool-2.0.3 lib/attribool/validators/strict_boolean_validator.rb