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