taiwanese_id_builder 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: