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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8591274c30e848ae34cf0b9d4ec2f06de1bea159
4
- data.tar.gz: 255e3b799d21fb6a50a12475a36babb8e6f3e052
3
+ metadata.gz: b08aa335a414c92cf1f7bd7a1b67ca8a2cc1d30d
4
+ data.tar.gz: d1d70ca3357128eb2080d46b9851302c6e212de0
5
5
  SHA512:
6
- metadata.gz: b69c691a61696c37cdeac7828118442eab256ecc644191b4280a718c3c705b54588d6887d7c7d407a05997a326aa16f64dd0e8fc0c234a586d05810edbed0219
7
- data.tar.gz: bf0eb10a70e8e458c3f3e23a173997438453e180570b66bcf01ffa092a334f9336938d81ddc27ba68764818874cd4dae30b4d9872c82092f7a56277c5697ce14
6
+ metadata.gz: dcd03c313e7b10fd3bb38a0ed2de7958d393b5c98ccb50c8cdd340ad461bf575c1372c65fb6d336b01418042c4fc35e74bcb1585e8ecbb06e41a6bd6da810706
7
+ data.tar.gz: 9b6e2ed176491384b7a802f6abbd34ec525f03ee6157736b85a8e4ea4e8c2183ad0fdfab74a2aaec2902db7c276d5cf866fb50a3fccb417fd29167ae9361d861
@@ -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
- def self.generate
16
- return "A123456789"
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
 
@@ -1,3 +1,3 @@
1
1
  module TaiwaneseIdBuilder
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.5"
3
3
  end
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.3
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-12 00:00:00.000000000 Z
11
+ date: 2014-07-13 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Taiwanese Id Builder.
14
14
  email: