module ArrayValidator::DuplicatesValidator

Public Class Methods

call(record, attribute, values, options = {}) click to toggle source
# File lib/array_validator/duplicates_validator.rb, line 3
def self.call(record, attribute, values, options = {})
  return if options[:duplicates] != false
  duplicates = values.select { |value| values.count(value) > 1 }.uniq
  return if duplicates.none?

  record.errors[attribute].push(
    I18n.t('duplicates', scope: I18N_SCOPE, invalid_values: duplicates.join(', '))
  )
end