Class: String

Inherits:
Object
  • Object
show all
Defined in:
lib/takami2.rb

Instance Method Summary collapse

Instance Method Details

#is_valid_taiwanese_id?Boolean

Returns:

  • (Boolean)


4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/takami2.rb', line 4

def is_valid_taiwanese_id?
  cities = {
    :A => '10', :B => '11', :C => '12', :D => '13',
    :E => '14', :F => '15', :G => '16', :H => '17',
    :I => '34', :J => '18', :K => '19', :L => '20',
    :M => '21', :N => '22', :O => '35', :P => '23',
    :Q => '24', :R => '25', :S => '26', :T => '27',
    :U => '28', :V => '29', :W => '32', :X => '30',
    :Y => '31', :Z => '33',
  }

  id_array = self.upcase.split('')

  special = cities[id_array.first.to_sym][0].to_i * 1 + cities[id_array.first.to_sym][1].to_i * 9
  sum =
    special +
    id_array[1].to_i * 8 +
    id_array[2].to_i * 7 +
    id_array[3].to_i * 6 +
    id_array[4].to_i * 5 +
    id_array[5].to_i * 4 +
    id_array[6].to_i * 3 +
    id_array[7].to_i * 2 +
    id_array[8].to_i * 1 +
    id_array[9].to_i
  return sum % 10 == 0
end