Method: FFaker::IdentificationTW#id

Defined in:
lib/ffaker/identification_tw.rb

#idObject



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

def id
  letter = FFaker.letterify('?')
  code = AREA_CODE[letter.to_sym]
  gender = fetch_sample([1, 2])
  serial = FFaker.numerify('#######')
  a, b, c, d, e, f, g, h, i, j = "#{code}#{gender}#{serial}".chars.map(&:to_i)

  checksum = ((9 * a) + b + (2 * c) + (3 * d) + (4 * e) + (5 * f) + (6 * g) + (7 * h) + (8 * i) + (9 * j)) % 10
  "#{letter.upcase}#{gender}#{serial}#{checksum}"
end