Sha256: cf2f5c4bae624e70b8d8aa0247d8c9ceb5b49125885e12306f12d989b1a4b051

Contents?: true

Size: 458 Bytes

Versions: 2

Compression:

Stored size: 458 Bytes

Contents

module VESR
  class ValidationDigitCalculator
    # Defined at http://www.pruefziffernberechnung.de/E/Einzahlungsschein-CH.shtml

    ESR9_TABLE = [0, 9, 4, 6, 8, 2, 7, 1, 3, 5]

    def self.call(value)
      value = value.to_s

      digit = 0
      value.split('').each do |char|
        current_digit = digit + char.to_i
        digit = ESR9_TABLE[current_digit % 10]
      end
      digit = (10 - digit) % 10

      "#{value}#{digit}"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
vesr-1.1.1 lib/vesr/validation_digit_calculator.rb
vesr-1.1.0 lib/vesr/validation_digit_calculator.rb