Sha256: 3a6e3707a021270c85bacd91483d4d950df58244846581a71b5fa49ad9e69c23

Contents?: true

Size: 565 Bytes

Versions: 1

Compression:

Stored size: 565 Bytes

Contents

require 'valvat/checksum'

class Valvat
  module Checksum
    class SE < Base
      check_digit_length 0

      def validate
        vat.to_s_wo_country[-2..-1].to_i > 0 &&
        super
      end

      private

      def check_digit
        figures.reverse.each_with_index.map do |fig, i|
          (fig*(i.modulo(2) == 0 ? 1 : 2)).to_s.split("").inject(0) { |sum, n| sum + n.to_i }
        end.inject(:+).modulo(10)
      end

      def given_check_digit
        0
      end

      def str_wo_country
        vat.to_s_wo_country[0..9]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
valvat-0.5.0 lib/valvat/checksum/se.rb