Sha256: 6c4a92c5ff1b244f888c2a04ab294775b4a24db888b86236b87e8fbd9d6d6b8e

Contents?: true

Size: 368 Bytes

Versions: 9

Compression:

Stored size: 368 Bytes

Contents

require 'valvat/checksum'

class Valvat
  module Checksum
    class DE < Base
      M = 10
      N = 11

      def check_digit
        prod = M
        figures.each do |fig|
          sum = (prod + fig).modulo(M)
          sum = M if sum == 0
          prod = (2*sum).modulo(N)
        end
        chk = N - prod
        chk == 10 ? 0 : chk
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
valvat-0.6.7 lib/valvat/checksum/de.rb
valvat-0.6.6 lib/valvat/checksum/de.rb
valvat-0.6.5 lib/valvat/checksum/de.rb
valvat-0.6.4 lib/valvat/checksum/de.rb
valvat-0.6.3 lib/valvat/checksum/de.rb
valvat-0.6.2 lib/valvat/checksum/de.rb
valvat-0.6.1 lib/valvat/checksum/de.rb
valvat-0.6.0 lib/valvat/checksum/de.rb
valvat-0.5.0 lib/valvat/checksum/de.rb