asseinfo/br_documents

View on GitHub
lib/br_documents/ie/to.rb

Summary

Maintainability
A
0 mins
Test Coverage
require_relative 'pattern1'

module BrDocuments
  module IE
    class TO < Pattern1
      def initialize(number)
        super
        if number.gsub(/(\.)|(\-)/, '').length == 9
          @mask = /^(\d{2}\.\d{6}\-\d{1})$|^(\d{9})$/
          @weight = [9, 8, 7, 6, 5, 4, 3, 2]
        else
          @mask = /^(\d{2}\.\d{2}\.\d{6}\-\d{1})$|^(\d{11})$/
          @weight = [9, 8, 0, 0, 7, 6, 5, 4, 3, 2]
        end
      end

      private

      def format_ie(number)
        if number.gsub(/(\.)|(\-)/, '').length == 9
          number.sub(/(\d{2})(\d{6})(\d{1})/, '\\1.\\2-\\3')
        else
          number.sub(/(\d{2})(\d{2})(\d{6})(\d{1})/, '\\1.\\2.\\3-\\4')
        end
      end
    end
  end
end