Class: CsvRecord::UniquenessValidation

Inherits:
Object
  • Object
show all
Defined in:
lib/csv_record/csv_validations/uniqueness_validation.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(field) ⇒ UniquenessValidation

Returns a new instance of UniquenessValidation.



4
5
6
# File 'lib/csv_record/csv_validations/uniqueness_validation.rb', line 4

def initialize(field)
  self.field = field
end

Instance Attribute Details

#fieldObject

Returns the value of attribute field.



2
3
4
# File 'lib/csv_record/csv_validations/uniqueness_validation.rb', line 2

def field
  @field
end

Instance Method Details

#run_on(obj) ⇒ Object



8
9
10
11
12
13
14
15
# File 'lib/csv_record/csv_validations/uniqueness_validation.rb', line 8

def run_on(obj)
  condition = {}
  condition[self.field] = obj.public_send field
  records = obj.class.__where__ condition
  if records.any? { |record| record != obj }
    obj.errors.add field
  end
end