class Mongoid::Enum::Dazzl::Validators::MultipleValidator

Public Class Methods

kind() click to toggle source
# File lib/mongoid/enum/dazzl/validators/multiple_validator.rb, line 30
def self.kind
  :custom
end

Public Instance Methods

add_error_message(record, attribute) click to toggle source
# File lib/mongoid/enum/dazzl/validators/multiple_validator.rb, line 19
def add_error_message(record, attribute)
  record.errors[attribute] << (
    options[:message] ||
    "is not in #{options[:in].join ', '}"
  )
end
all_included?(values, allowed) click to toggle source
# File lib/mongoid/enum/dazzl/validators/multiple_validator.rb, line 26
def all_included?(values, allowed)
  (values - allowed).empty?
end
validate_each(record, attribute, values) click to toggle source
# File lib/mongoid/enum/dazzl/validators/multiple_validator.rb, line 8
def validate_each(record, attribute, values)
  values = Array(values)

  if options[:allow_nil]
    add_error_message record, attribute \
      unless all_included?(values, options[:in])
  elsif values.empty? || !all_included?(values, options[:in])
    add_error_message record, attribute
  end
end