class RussianPost::Barcode::International
Constants
- WEIGHT_FACTORS
Public Class Methods
format()
click to toggle source
# File lib/russianpost/barcode/international.rb, line 9 def self.format /\A([A-Z]{2}\d{9}[A-Z]{2})\Z/ end
Public Instance Methods
valid?()
click to toggle source
Calls superclass method
RussianPost::Barcode::Base#valid?
# File lib/russianpost/barcode/international.rb, line 13 def valid? super && country_exists? end
Private Instance Methods
checkdigit()
click to toggle source
# File lib/russianpost/barcode/international.rb, line 23 def checkdigit checksum < 11 ? checksum % 10 : 5 end
checksum()
click to toggle source
# File lib/russianpost/barcode/international.rb, line 27 def checksum 11 - (digits.zip(WEIGHT_FACTORS).map{|i| i.reduce(:*)}.reduce(:+) % 11) end
country_exists?()
click to toggle source
# File lib/russianpost/barcode/international.rb, line 19 def country_exists? !Iso3166Ru.find_by(alpha2: barcode[-2..-1]).nil? end