Sha256: 3e8e473aa4bcf7db92a52057ce44f559b2e83633c98f0e8cad1dcf35974dd6fa
Contents?: true
Size: 1.26 KB
Versions: 2
Compression:
Stored size: 1.26 KB
Contents
require_relative "base" require_relative "../commons/mod14" module BrDocuments module IE class RO < Base include Commons::Mod14 private def format_ie(number) if number.gsub(/(\.)|(\-)/, "").length == 9 number.sub(/(\d{3})(\d{5})(\d{1})/, "\\1.\\2-\\3") else number.sub(/(\d{13})(\d{1})/, "\\1-\\2") end end def valid_format? valid_old_format or valid_new_format end def valid_old_format regex = /^(\d{3}\.\d{5}\-\d{1})$|^(\d{9})$/ regex.match(@number).present? end def valid_new_format regex = /^(\d{13}\-\d{1})$|^(\d{14})$/ regex.match(@number).present? end def valid_digital_check? valid_old_digital_check or valid_new_digital_check end def valid_old_digital_check weight = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2] remove_mask! @number[-1].eql? generate_digital_check(@number[-6, 6], weight).to_s end def valid_new_digital_check weight = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2] remove_mask! @number[-1].eql? generate_digital_check(@number, weight).to_s end def remove_mask! @number.gsub!(/[\.\/-]/, "") end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
br_documents-0.1.3 | lib/br_documents/ie/ro.rb |
br_documents-0.1.2 | lib/br_documents/ie/ro.rb |