module FFaker::IdentificationBR
Constants
- CNPJ_VERIFICATION_MULTIPLIERS
- CPF_VERIFICATION_MULTIPLIERS
- GENDERS
Public Instance Methods
cnpj()
click to toggle source
# File lib/ffaker/identification_br.rb, line 23 def cnpj cnpj = FFaker.numerify('############') validators = cnpj_verification_digits(cnpj) cnpj + validators.join end
cnpj_verification_digits(cnpj)
click to toggle source
# File lib/ffaker/identification_br.rb, line 50 def cnpj_verification_digits(cnpj) document_verification_digits(CNPJ_VERIFICATION_MULTIPLIERS, cnpj) end
cpf()
click to toggle source
# File lib/ffaker/identification_br.rb, line 12 def cpf cpf = FFaker.numerify('#########') validators = cpf_verification_digits(cpf) cpf + validators.join end
cpf_verification_digits(cpf)
click to toggle source
# File lib/ffaker/identification_br.rb, line 46 def cpf_verification_digits(cpf) document_verification_digits(CPF_VERIFICATION_MULTIPLIERS, cpf) end
gender()
click to toggle source
# File lib/ffaker/identification_br.rb, line 42 def gender fetch_sample(GENDERS) end
pretty_cnpj()
click to toggle source
# File lib/ffaker/identification_br.rb, line 29 def pretty_cnpj cnpj_numbers = cnpj.to_s.rjust(14, '0') "#{cnpj_numbers[0..1]}.#{cnpj_numbers[2..4]}.#{cnpj_numbers[5..7]}/#{cnpj_numbers[8..11]}-#{cnpj_numbers[12..14]}" end
pretty_cpf()
click to toggle source
# File lib/ffaker/identification_br.rb, line 18 def pretty_cpf cpf_numbers = cpf "#{cpf_numbers[0..2]}.#{cpf_numbers[3..5]}.#{cpf_numbers[6..8]}-#{cpf_numbers[9..10]}" end
pretty_rg()
click to toggle source
# File lib/ffaker/identification_br.rb, line 38 def pretty_rg FFaker.numerify('###.###.###') end
rg()
click to toggle source
# File lib/ffaker/identification_br.rb, line 34 def rg FFaker.numerify('#########') end
Private Instance Methods
document_verification_digits(verification_multipliers, document = nil)
click to toggle source
# File lib/ffaker/identification_br.rb, line 56 def document_verification_digits(verification_multipliers, document = nil) return false if document.nil? document_digits = document.to_s.scan(/[0-9]/).map(&:to_i) validation_digits = [] if document_digits.size + 1 == verification_multipliers.size && document_digits.uniq.size > 1 0.upto(1) do |i| sum = verification_multipliers.drop(1 - i).each_with_index.inject(0) do |val, (value, j)| val + (document_digits[j] * value) end validation_digits[i] = (sum %= 11) < 2 ? 0 : 11 - sum document_digits.push(validation_digits[i]) end return validation_digits end [] end