lib/russianpost/barcode/international.rb in russianpost-0.6.0 vs lib/russianpost/barcode/international.rb in russianpost-0.7.0

- old
+ new

@@ -1,16 +1,25 @@ require 'russianpost/barcode/base' +require 'iso3166_ru' module RussianPost module Barcode class International < Base WEIGHT_FACTORS = [8, 6, 4, 2, 3, 5, 9, 7, 0] def self.format /\A([A-Z]{2}\d{9}[A-Z]{2})\Z/ end + def valid? + super && country_exists? + end + private + + def country_exists? + !Iso3166Ru.find_by(alpha2: barcode[-2..-1]).nil? + end def checkdigit checksum < 11 ? checksum % 10 : 5 end