Extract mismatch validator to separate class

#569
This commit is contained in:
Artur Beljajev 2017-09-12 14:55:41 +03:00
parent 4d5830efdf
commit d5197962ee
5 changed files with 40 additions and 28 deletions

View file

@ -0,0 +1,20 @@
class Contact::Ident::MismatchValidator < ActiveModel::Validator
Mismatch = Struct.new(:type, :country)
def self.mismatches
[
Mismatch.new('birthday', Country.new('EE')),
]
end
def validate(record)
record.errors.add(:base, :mismatch, type: record.type, country: record.country) if mismatched?(record)
end
private
def mismatched?(record)
mismatch = Mismatch.new(record.type, record.country)
self.class.mismatches.include?(mismatch)
end
end