taiwanese_id_builder 0.0.3 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/taiwanese_id_builder.rb +58 -2
- data/lib/taiwanese_id_builder/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b08aa335a414c92cf1f7bd7a1b67ca8a2cc1d30d
|
4
|
+
data.tar.gz: d1d70ca3357128eb2080d46b9851302c6e212de0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dcd03c313e7b10fd3bb38a0ed2de7958d393b5c98ccb50c8cdd340ad461bf575c1372c65fb6d336b01418042c4fc35e74bcb1585e8ecbb06e41a6bd6da810706
|
7
|
+
data.tar.gz: 9b6e2ed176491384b7a802f6abbd34ec525f03ee6157736b85a8e4ea4e8c2183ad0fdfab74a2aaec2902db7c276d5cf866fb50a3fccb417fd29167ae9361d861
|
data/lib/taiwanese_id_builder.rb
CHANGED
@@ -12,8 +12,63 @@ module TaiwaneseIdBuilder
|
|
12
12
|
|
13
13
|
MULTIPLIER = [1,9,8,7,6,5,4,3,2,1,1].freeze
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
|
16
|
+
# TODO: Refactor this method first!
|
17
|
+
def self.generate(gender = nil)
|
18
|
+
sum = 0
|
19
|
+
twid = ""
|
20
|
+
|
21
|
+
first_letter = TWID_LETTER.keys.sample
|
22
|
+
|
23
|
+
sum += TWID_LETTER[first_letter]/10 * MULTIPLIER[0]
|
24
|
+
sum += TWID_LETTER[first_letter]%10 * MULTIPLIER[1]
|
25
|
+
twid += first_letter.to_s
|
26
|
+
|
27
|
+
case gender
|
28
|
+
when "male"
|
29
|
+
second_letter = 1
|
30
|
+
when "female"
|
31
|
+
second_letter = 2
|
32
|
+
else
|
33
|
+
second_letter = [1, 2].sample
|
34
|
+
end
|
35
|
+
sum += second_letter * MULTIPLIER[2]
|
36
|
+
twid += second_letter.to_s
|
37
|
+
|
38
|
+
6.times do |i|
|
39
|
+
letter = Random.rand(1..9)
|
40
|
+
sum += letter * MULTIPLIER[i + 3]
|
41
|
+
twid += letter.to_s
|
42
|
+
end
|
43
|
+
|
44
|
+
if sum % 10 == 0
|
45
|
+
last_two_letter = Random.rand(1..9)
|
46
|
+
sum += last_two_letter
|
47
|
+
twid += last_two_letter.to_s
|
48
|
+
|
49
|
+
last_letter = 10 - last_two_letter
|
50
|
+
sum += last_letter
|
51
|
+
twid += last_letter.to_s
|
52
|
+
elsif sum % 10 == 9
|
53
|
+
last_two_letter = Random.rand(2..10)
|
54
|
+
sum += last_two_letter
|
55
|
+
twid += last_two_letter.to_s
|
56
|
+
|
57
|
+
last_letter = 11 - last_two_letter
|
58
|
+
sum += last_letter
|
59
|
+
twid += last_letter.to_s
|
60
|
+
else
|
61
|
+
max_range = 10 - (sum % 10) - 1
|
62
|
+
last_two_letter = Random.rand(1..max_range)
|
63
|
+
sum += last_two_letter
|
64
|
+
twid += last_two_letter.to_s
|
65
|
+
|
66
|
+
last_letter = max_range + 1 - last_two_letter
|
67
|
+
sum += last_letter
|
68
|
+
twid += last_letter.to_s
|
69
|
+
end
|
70
|
+
|
71
|
+
return twid
|
17
72
|
end
|
18
73
|
|
19
74
|
def self.valid?(twid, case_sensitive = true)
|
@@ -26,6 +81,7 @@ module TaiwaneseIdBuilder
|
|
26
81
|
# twid_array = twid.chars
|
27
82
|
|
28
83
|
# 拿出第一個英文字母並轉成數字
|
84
|
+
puts twid
|
29
85
|
first_letter = twid[0]
|
30
86
|
other_letters = twid[1..-1]
|
31
87
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: taiwanese_id_builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wayne Chu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-13 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Taiwanese Id Builder.
|
14
14
|
email:
|