module BrDocuments::CnpjCpf::Document
Public Class Methods
new(number)
click to toggle source
# File lib/br_documents/cnpj_cpf/document.rb, line 8 def initialize(number) @number = number end
Public Instance Methods
formatted()
click to toggle source
# File lib/br_documents/cnpj_cpf/document.rb, line 16 def formatted valid? ? format_number : '' end
valid?()
click to toggle source
# File lib/br_documents/cnpj_cpf/document.rb, line 12 def valid? valid_format? && !sequence_of_equal_numbers? && valid_check_digit? end
Private Instance Methods
number_without_mask()
click to toggle source
# File lib/br_documents/cnpj_cpf/document.rb, line 38 def number_without_mask @number.gsub(/[\.\/-]/, '') end
sequence_of_equal_numbers?()
click to toggle source
# File lib/br_documents/cnpj_cpf/document.rb, line 26 def sequence_of_equal_numbers? number_without_mask.chars.uniq.length == 1 end
valid_check_digit?()
click to toggle source
# File lib/br_documents/cnpj_cpf/document.rb, line 30 def valid_check_digit? weight1, weight2 = weights_for_digital_check digital_check1 = generate_check_digit(number_without_mask, weight1) digital_check2 = generate_check_digit(number_without_mask, weight2) @number[-2, 2] == "#{digital_check1}#{digital_check2}" end
valid_format?()
click to toggle source
# File lib/br_documents/cnpj_cpf/document.rb, line 22 def valid_format? format_regex.match(@number).present? end