Class: ValidateMe::UniquenessValidations

Inherits:
Object
  • Object
show all
Defined in:
lib/validate_me/uniqueness_validations.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(index) ⇒ UniquenessValidations

Returns a new instance of UniquenessValidations.



13
14
15
# File 'lib/validate_me/uniqueness_validations.rb', line 13

def initialize index
  @index = index
end

Class Method Details

.call(base_class:, indexes:) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/validate_me/uniqueness_validations.rb', line 5

def self.call base_class:, indexes:
  indexes.each do |index|
    next unless index.unique

    new(index).validate base_class
  end
end

Instance Method Details

#validate(base_class) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/validate_me/uniqueness_validations.rb', line 17

def validate base_class
  columns = index.columns

  if columns.one?
    base_class.send :validates, columns.first, uniqueness: true
  else
    base_class.send :validates, columns.shift, uniqueness: { scope: columns }
  end
end