module FFaker::IdentificationEC

Public Instance Methods

ci() click to toggle source

medium.com/@bryansuarez/c%C3%B3mo-validar-c%C3%A9dula-y-ruc-en-ecuador-b62c5666186f Cedula de Identificacion

# File lib/ffaker/identification_ec.rb, line 10
def ci
  first_digits = ci_digits
  "#{first_digits}#{last_digit(first_digits)}"
end

Private Instance Methods

ci_digits() click to toggle source
# File lib/ffaker/identification_ec.rb, line 17
def ci_digits
  "#{FFaker.numerify('##')}#{rand(0..5)}#{FFaker.numerify('######')}"
end
digits_sum(digits) click to toggle source
# File lib/ffaker/identification_ec.rb, line 26
def digits_sum(digits)
  sum = 0
  digits.chars.each_with_index do |char, index|
    if index.even?
      multiple = char.to_i * 2
      sum += multiple > 9 ? multiple - 9 : multiple
    else
      sum += char.to_i
    end
  end
  sum
end
last_digit(digits) click to toggle source
# File lib/ffaker/identification_ec.rb, line 21
def last_digit(digits)
  mod = digits_sum(digits) % 10
  10 - mod if mod.positive?
end