Sha256: 22b6b9164a6fcb89e1a0a708bd6157b22461c3ba68f2d5cfe9acb4ed48beec47

Contents?: true

Size: 548 Bytes

Versions: 9

Compression:

Stored size: 548 Bytes

Contents

class Valvat
  module Checksum
    class IE < Base
      def check_digit
        sum_figures_by do |fig, i|
          fig*(i+2)
        end.modulo(23)
      end

      CHARS = "WABCDEFGHIJKLMNOPQRSTUV".split("")

      def given_check_digit
        CHARS.index(given_check_digit_str)
      end

      def str_wo_country
        str = super
        # Convert old irish vat format to new one
        if str =~ /\A[0-9][A-Z][0-9]{5}[A-Z]\Z/
          "0#{str[2..6]}#{str[0]}#{str[7]}"
        else
          str
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
valvat-0.7.4 lib/valvat/checksum/ie.rb
valvat-0.7.3 lib/valvat/checksum/ie.rb
valvat-0.7.2 lib/valvat/checksum/ie.rb
valvat-0.7.1 lib/valvat/checksum/ie.rb
valvat-0.7.0 lib/valvat/checksum/ie.rb
valvat-0.6.11 lib/valvat/checksum/ie.rb
valvat-0.6.10 lib/valvat/checksum/ie.rb
valvat-0.6.9 lib/valvat/checksum/ie.rb
valvat-0.6.8 lib/valvat/checksum/ie.rb