Sha256: 4b295d67b7c002958bffec0808e3b7fabde0190ee253190e3b410f68167a8253
Contents?: true
Size: 1.07 KB
Versions: 3
Compression:
Stored size: 1.07 KB
Contents
# encoding: utf-8 module SEPA class IBANValidator < ActiveModel::Validator def validate(record) unless IBANTools::IBAN.valid?(record.iban.to_s) record.errors.add(:iban, 'is invalid') end end end class BICValidator < ActiveModel::Validator def validate(record) unless record.bic.to_s.match /[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}/ record.errors.add(:bic, 'is invalid') end end end class CreditorIdentifierValidator < ActiveModel::Validator def validate(record) unless valid?(record.creditor_identifier) record.errors.add(:creditor_identifier, 'is invalid') end end def valid?(creditor_identifier) if ok = creditor_identifier.to_s.match(/[a-zA-Z]{2,2}[0-9]{2,2}([A-Za-z0-9]|[\+|\?|\/|\-|\:|\(|\)|\.|,|']){3,3}([A-Za-z0-9]|[\+|\?|\/|\-|:|\(|\)|\.|,|']){1,28}/) # In Germany, the identifier has to be exactly 18 chars long if creditor_identifier[0..1].match(/DE/i) ok = creditor_identifier.length == 18 end end ok end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sepa_king-0.0.7 | lib/sepa_king/validator.rb |
sepa_king-0.0.6 | lib/sepa_king/validator.rb |
sepa_king-0.0.5 | lib/sepa_king/validator.rb |