Sha256: 29586032186b08919a4f2c25592a66f20bf03421552d81698e9397ec9f81e93d

Contents?: true

Size: 557 Bytes

Versions: 3

Compression:

Stored size: 557 Bytes

Contents

# frozen_string_literal: true

module ActiveFields
  module Validators
    class EnumValidator < BaseValidator
      private

      def perform_validation(value)
        if value.nil?
          errors << :required if options[:required]
        elsif options[:allowed_values].is_a?(Array)
          validate_value_allowed(value, allowed_values: options[:allowed_values])
        end
      end

      def validate_value_allowed(value, allowed_values:)
        return if allowed_values.include?(value)

        errors << :inclusion
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
active_fields-2.0.0 lib/active_fields/validators/enum_validator.rb
active_fields-1.1.0 lib/active_fields/validators/enum_validator.rb
active_fields-1.0.0 lib/active_fields/validators/enum_validator.rb