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
|