Module: FFaker::IdentificationMX

Extended by:
IdentificationMX, ModuleUtils
Included in:
IdentificationMX
Defined in:
lib/ffaker/identification_mx.rb

Constant Summary collapse

CONSONANTS =
%w[B C D F G H J K L M N P Q R S T V W X Y Z].freeze
VOWELS =
%w[A E I O U].freeze
HOMOCLAVE =
CONSONANTS + VOWELS + Array('0'..'9')

Instance Method Summary collapse

Methods included from ModuleUtils

const_missing, k, luhn_check, underscore, unique

Methods included from RandomUtils

#fetch_sample, #rand, #shuffle

Instance Method Details

#curpObject



41
42
43
44
45
46
47
48
49
50
# File 'lib/ffaker/identification_mx.rb', line 41

def curp
  all_letters = CONSONANTS + VOWELS
  hm = %w[H M]
  [
    fetch_sample(CONSONANTS), fetch_sample(VOWELS),
    fetch_sample(all_letters, count: 2).join, date, fetch_sample(hm),
    fetch_sample(ESTADOS_CURP), fetch_sample(CONSONANTS, count: 3).join,
    fetch_sample(HOMOCLAVE), rand(0..9)
  ].join
end

#rfcObject

es.wikipedia.org/wiki/Registro_Federal_de_Contribuyentes_(M%C3%A9xico) Registro Federal de Contribuyentes (R.F.C.)



35
36
37
# File 'lib/ffaker/identification_mx.rb', line 35

def rfc
  fetch_sample([rfc_persona_moral, rfc_persona_fisica])
end

#rfc_persona_fisicaObject

es.wikipedia.org/wiki/Registro_Federal_de_Contribuyentes_(M%C3%A9xico) Registro Federal de Contribuyentes (R.F.C.) para persona física



14
15
16
17
18
19
20
21
22
23
# File 'lib/ffaker/identification_mx.rb', line 14

def rfc_persona_fisica
  consonants_n = CONSONANTS + ['Ñ']
  [
    fetch_sample(consonants_n),
    fetch_sample(VOWELS),
    fetch_sample(consonants_n + VOWELS, count: 2).join,
    date,
    fetch_sample(HOMOCLAVE, count: 3).join
  ].join
end

#rfc_persona_moralObject

es.wikipedia.org/wiki/Registro_Federal_de_Contribuyentes_(M%C3%A9xico) Registro Federal de Contribuyentes (R.F.C.) para persona moral



27
28
29
30
31
# File 'lib/ffaker/identification_mx.rb', line 27

def rfc_persona_moral
  consonants_n_amp = CONSONANTS + ['Ñ', '&']
  all_letters = consonants_n_amp + VOWELS
  [fetch_sample(all_letters, count: 3), date, fetch_sample(HOMOCLAVE, count: 3)].flatten.join
end