Sha256: 1357e4e9195ed3991c840d85c5c040aca86f12f23eed1fe6ed98b12195fa7f34
Contents?: true
Size: 442 Bytes
Versions: 1
Compression:
Stored size: 442 Bytes
Contents
require 'russianpost/barcode/base' 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 private def checkdigit checksum < 11 ? checksum % 10 : 5 end def checksum 11 - (digits.zip(WEIGHT_FACTORS).map{|i| i.reduce(:*)}.reduce(:+) % 11) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
russianpost-0.6.0 | lib/russianpost/barcode/international.rb |