Sha256: 4de6100c169a229977d24903a9387d22d4b554c8d284115de00e65fcbecba0fe

Contents?: true

Size: 666 Bytes

Versions: 12

Compression:

Stored size: 666 Bytes

Contents

require 'hermod/validators/base'

module Hermod
  module Validators
    # Checks the given value is in a predefined list of allowed values
    class AllowedValues < Base
      attr_reader :allowed_values

      # Sets up the validator with the list of allowed values
      def initialize(allowed_values)
        @allowed_values = allowed_values
      end

      private

      def test
        value.blank? || allowed_values.include?(value)
      end

      def message
        list_of_values = allowed_values.to_sentence(last_word_connector: ", or ", two_words_connector: " or ")
        "must be one of #{list_of_values}, not #{value}"
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
hermod-2.5.0 lib/hermod/validators/allowed_values.rb
hermod-2.4.1 lib/hermod/validators/allowed_values.rb
hermod-2.4.0 lib/hermod/validators/allowed_values.rb
hermod-2.2.0 lib/hermod/validators/allowed_values.rb
hermod-2.1.0 lib/hermod/validators/allowed_values.rb
hermod-1.2.9 lib/hermod/validators/allowed_values.rb
hermod-1.2.8 lib/hermod/validators/allowed_values.rb
hermod-1.2.7 lib/hermod/validators/allowed_values.rb
hermod-1.2.6 lib/hermod/validators/allowed_values.rb
hermod-1.2.5 lib/hermod/validators/allowed_values.rb
hermod-1.2.4 lib/hermod/validators/allowed_values.rb
hermod-1.2.3 lib/hermod/validators/allowed_values.rb