zhongwen_tools 0.4.0 → 0.5.0

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: 9aaee7db1f2f9b57eb3119302933bd0650f3f00d
4
- data.tar.gz: ce9e4f18cae127abd60fc4dc664453586029fa0e
3
+ metadata.gz: a17eb9d8c9461739041f7df9d0fafc372ed07571
4
+ data.tar.gz: 3c4c1f9c9d1ad77617d4d7277a1a6a0bc738e884
5
5
  SHA512:
6
- metadata.gz: 4f1fde8db869e573f9e066cf1bf8687724e165b972e886e924f346d96a3bbaf4b210f1f2478f405494f2865b92f9f26e1e71e9ecb29cdb84f459e6a8314fb55e
7
- data.tar.gz: 881dd5bb06c31500f55e3bf7ce925634f64e46fe7184c2beffe639c24d6eb7884b9ba002ec55931ec25ff9c00dff8d75199f55a4b7b46d62ca2afa90e91056bf
6
+ metadata.gz: 235a1a510256d565685f7b65eff3dc4cb560a60d44e8df503dc229d7b3bf3a76b40ba08af44056f2c016e3faedcf0a6e846abcee7627de62b233d3268ab30b64
7
+ data.tar.gz: 766bb26ec849eb7dfa90cfbe86e8ad6177a1b7dd71c4e6d707254e6e9320764144a32e73721ea7a61e6e8d56577bba2164ada595758192ab63f3fc4c0f9fff7d
data/.travis.yml CHANGED
@@ -4,7 +4,6 @@ rvm:
4
4
  - 1.9.3
5
5
  - 2.0.0
6
6
  - 2.1.0
7
- - ruby-head
8
7
 
9
8
  matrix:
10
9
  include:
data/README.md CHANGED
@@ -59,13 +59,13 @@ ZhongwenTools includes the following modules:
59
59
  ZhongwenTools::String.is_zhs? '中国' #=> true
60
60
  ZhongwenTools::String.is_zht? '中国' #=> false
61
61
 
62
- ZhongwenTools::String.has_zh_punctuation? '你在哪里?' #=> true
63
- ZhongwenTools::String.strip_zh_punctuation? '你在哪里?' #=> '你在哪里'
62
+ ZhongwenTools::String.has_zh_punctuation? '你在哪里?' #=> true
63
+ ZhongwenTools::String.strip_zh_punctuation? '你在哪里?' #=> '你在哪里'
64
64
 
65
- #### The following capitalization methods work for pinyin. [TODO]
66
- ZhongwenTools::String.downcase 'Qǐng wèn...' #=> --> does pinyin/ lowercase
67
- ZhongwenTools::String.upcase --> does pinyin uppercase
68
- ZhongwenTools::String.capitalize ---> does pinyin / fullwidth capitalization
65
+ #### The following capitalization methods work for pinyin.
66
+ ZhongwenTools::String.downcase 'Àomén' #=> 'àomén' does pinyin/ lowercase
67
+ ZhongwenTools::String.upcase 'àomén' #=> --> does pinyin uppercase
68
+ ZhongwenTools::String.capitalize 'àomén' #=> 'Àomén'
69
69
 
70
70
  #### Ruby 1.8 safe methods
71
71
  ZhongwenTools::String.chars '中文' #=> ['中','文']
@@ -5,161 +5,161 @@
5
5
  module ZhongwenTools
6
6
  module Romanization
7
7
  PYN_PY = {
8
- "A1" => "Ā",
9
- "A2" => "Á",
10
- "A3" => "Ǎ",
11
- "A4" => "À",
12
- "A5" => "A",
13
- "Ai1" => "Āi",
14
- "Ai2" => "Ái",
15
- "Ai3" => "Ǎi",
16
- "Ai4" => "Ài",
17
- "Ai5" => "Ai",
18
- "Ao1" => "Ā",
19
- "Ao2" => "Áo",
20
- "Ao3" => "Ǎo",
21
- "Ao4" => "Ào",
22
- "Ao5" => "Ao",
23
- "a1" => "ā",
24
- "a2" => "á",
25
- "a3" => "ǎ",
26
- "a4" => "à",
27
- "a5" => "a",
28
- "e1" => "ē",
29
- "e2" => "é",
30
- "e3" => "ě",
31
- "e4" => "è",
32
- "e5" => "e",
33
- "i1" => "ī",
34
- "i2" => "í",
35
- "i3" => "ǐ",
36
- "i4" => "ì",
37
- "i5" => "i",
38
- "O1" => "Ō",
39
- "O2" => "Ó",
40
- "O3" => "Ǒ",
41
- "O4" => "Ò",
42
- "O5" => "O",
43
- "o1" => "ō",
44
- "o2" => "ó",
45
- "o3" => "ǒ",
46
- "o4" => "ò",
47
- "o5" => "o",
48
- "u1" => "ū",
49
- "u2" => "ú",
50
- "u3" => "ǔ",
51
- "u4" => "ù",
52
- "u5" => "u",
53
- "ai1" => "āi",
54
- "ai2" => "ái",
55
- "ai3" => "ǎi",
56
- "ai4" => "ài",
57
- "ai5" => "ai",
58
- "ao1" => "āo",
59
- "ao2" => "áo",
60
- "ao3" => "ǎo",
61
- "ao4" => "ào",
62
- "ao5" => "ao",
63
- "E1" => "Ē",
64
- "E2" => "É",
65
- "E3" => "Ě",
66
- "E4" => "È",
67
- "E5" => "E",
68
- "Ei1" => "Ēi",
69
- "Ei2" => "Éi",
70
- "Ei3" => "Ěi",
71
- "Ei4" => "Èi",
72
- "Ei5" => "Ei",
73
- "ei1" => "ēi",
74
- "ei2" => "éi",
75
- "ei3" => "ěi",
76
- "ei4" => "èi",
77
- "ei5" => "ei",
78
- "ia1" => "iā",
79
- "ia2" => "iá",
80
- "ia3" => "iǎ",
81
- "ia4" => "ià",
82
- "ia5" => "ia",
83
- "iao1" => "iāo",
84
- "iao2" => "iáo",
85
- "iao3" => "iǎo",
86
- "iao4" => "iào",
87
- "iao5" => "iao",
88
- "ie1" => "iē",
89
- "ie2" => "ié",
90
- "ie3" => "iě",
91
- "ie4" => "iè",
92
- "ie5" => "ie",
93
- "io1" => "iō",
94
- "io2" => "ió",
95
- "io3" => "iǒ",
96
- "io4" => "iò",
97
- "io5" => "io",
98
- "iu1" => "iū",
99
- "iu2" => "iú",
100
- "iu3" => "iǔ",
101
- "iu4" => "iù",
102
- "iu5" => "iu",
103
- "Ou1" => "Ōu",
104
- "Ou2" => "Óu",
105
- "Ou3" => "Ǒu",
106
- "Ou4" => "Òu",
107
- "Ou5" => "Ou",
108
- "ou1" => "ōu",
109
- "ou2" => "óu",
110
- "ou3" => "ǒu",
111
- "ou4" => "òu",
112
- "ou5" => "ou",
113
- "ua1" => "uā",
114
- "ua2" => "uá",
115
- "ua3" => "uǎ",
116
- "ua4" => "uà",
117
- "ua5" => "ua",
118
- "uai1" => "uāi",
119
- "uai2" => "uái",
120
- "uai3" => "uǎi",
121
- "uai4" => "uài",
122
- "uai5" => "uai",
123
- "ue1" => "uē",
124
- "ue2" => "ué",
125
- "ue3" => "uě",
126
- "ue4" => "uè",
127
- "ue5" => "ue",
128
- "ui1" => "uī",
129
- "ui2" => "uí",
130
- "ui3" => "uǐ",
131
- "ui4" => "uì",
132
- "ui5" => "ui",
133
- "uo1" => "uō",
134
- "uo2" => "uó",
135
- "uo3" => "uǒ",
136
- "uo4" => "uò",
137
- "uo5" => "uo",
138
- "v1" => "ǖ",
139
- "v2" => "ǘ",
140
- "v3" => "ǚ",
141
- "v4" => "ǜ",
142
- "v5" => "ü",
143
- "ve1" => "üē",
144
- "ve2" => "üé",
145
- "ve3" => "üě",
146
- "ve4" => "üè",
147
- "ve5" => "üe",
148
- 'm1' => 'm̄',#using combining diacritical marks
149
- 'm2' => "ḿ",
150
- 'm3' => 'm̌',#using combining diacritical marks
151
- 'm4' => "m̀",
152
- 'm5' => 'm',
153
- 'n1' => 'ēn',
154
- 'n2' => "én",
155
- 'n3' => "ěn",
156
- 'n4' => "èn",
157
- 'n5' => 'en',
158
- 'ng1' => 'ēng',
159
- 'ng2' => "éng",
160
- 'ng3' => "ěng",
161
- 'ng4' => "èng",
162
- 'ng5' => 'eng'
8
+ "A1" => "Ā",
9
+ "A2" => "Á",
10
+ "A3" => "Ǎ",
11
+ "A4" => "À",
12
+ "A5" => "A",
13
+ "Ai1" => "Āi",
14
+ "Ai2" => "Ái",
15
+ "Ai3" => "Ǎi",
16
+ "Ai4" => "Ài",
17
+ "Ai5" => "Ai",
18
+ "Ao1" => "Ā",
19
+ "Ao2" => "Áo",
20
+ "Ao3" => "Ǎo",
21
+ "Ao4" => "Ào",
22
+ "Ao5" => "Ao",
23
+ "a1" => "ā",
24
+ "a2" => "á",
25
+ "a3" => "ǎ",
26
+ "a4" => "à",
27
+ "a5" => "a",
28
+ "e1" => "ē",
29
+ "e2" => "é",
30
+ "e3" => "ě",
31
+ "e4" => "è",
32
+ "e5" => "e",
33
+ "i1" => "ī",
34
+ "i2" => "í",
35
+ "i3" => "ǐ",
36
+ "i4" => "ì",
37
+ "i5" => "i",
38
+ "O1" => "Ō",
39
+ "O2" => "Ó",
40
+ "O3" => "Ǒ",
41
+ "O4" => "Ò",
42
+ "O5" => "O",
43
+ "o1" => "ō",
44
+ "o2" => "ó",
45
+ "o3" => "ǒ",
46
+ "o4" => "ò",
47
+ "o5" => "o",
48
+ "u1" => "ū",
49
+ "u2" => "ú",
50
+ "u3" => "ǔ",
51
+ "u4" => "ù",
52
+ "u5" => "u",
53
+ "ai1" => "āi",
54
+ "ai2" => "ái",
55
+ "ai3" => "ǎi",
56
+ "ai4" => "ài",
57
+ "ai5" => "ai",
58
+ "ao1" => "āo",
59
+ "ao2" => "áo",
60
+ "ao3" => "ǎo",
61
+ "ao4" => "ào",
62
+ "ao5" => "ao",
63
+ "E1" => "Ē",
64
+ "E2" => "É",
65
+ "E3" => "Ě",
66
+ "E4" => "È",
67
+ "E5" => "E",
68
+ "Ei1" => "Ēi",
69
+ "Ei2" => "Éi",
70
+ "Ei3" => "Ěi",
71
+ "Ei4" => "Èi",
72
+ "Ei5" => "Ei",
73
+ "ei1" => "ēi",
74
+ "ei2" => "éi",
75
+ "ei3" => "ěi",
76
+ "ei4" => "èi",
77
+ "ei5" => "ei",
78
+ "ia1" => "iā",
79
+ "ia2" => "iá",
80
+ "ia3" => "iǎ",
81
+ "ia4" => "ià",
82
+ "ia5" => "ia",
83
+ "iao1" => "iāo",
84
+ "iao2" => "iáo",
85
+ "iao3" => "iǎo",
86
+ "iao4" => "iào",
87
+ "iao5" => "iao",
88
+ "ie1" => "iē",
89
+ "ie2" => "ié",
90
+ "ie3" => "iě",
91
+ "ie4" => "iè",
92
+ "ie5" => "ie",
93
+ "io1" => "iō",
94
+ "io2" => "ió",
95
+ "io3" => "iǒ",
96
+ "io4" => "iò",
97
+ "io5" => "io",
98
+ "iu1" => "iū",
99
+ "iu2" => "iú",
100
+ "iu3" => "iǔ",
101
+ "iu4" => "iù",
102
+ "iu5" => "iu",
103
+ "Ou1" => "Ōu",
104
+ "Ou2" => "Óu",
105
+ "Ou3" => "Ǒu",
106
+ "Ou4" => "Òu",
107
+ "Ou5" => "Ou",
108
+ "ou1" => "ōu",
109
+ "ou2" => "óu",
110
+ "ou3" => "ǒu",
111
+ "ou4" => "òu",
112
+ "ou5" => "ou",
113
+ "ua1" => "uā",
114
+ "ua2" => "uá",
115
+ "ua3" => "uǎ",
116
+ "ua4" => "uà",
117
+ "ua5" => "ua",
118
+ "uai1" => "uāi",
119
+ "uai2" => "uái",
120
+ "uai3" => "uǎi",
121
+ "uai4" => "uài",
122
+ "uai5" => "uai",
123
+ "ue1" => "uē",
124
+ "ue2" => "ué",
125
+ "ue3" => "uě",
126
+ "ue4" => "uè",
127
+ "ue5" => "ue",
128
+ "ui1" => "uī",
129
+ "ui2" => "uí",
130
+ "ui3" => "uǐ",
131
+ "ui4" => "uì",
132
+ "ui5" => "ui",
133
+ "uo1" => "uō",
134
+ "uo2" => "uó",
135
+ "uo3" => "uǒ",
136
+ "uo4" => "uò",
137
+ "uo5" => "uo",
138
+ "v1" => "ǖ",
139
+ "v2" => "ǘ",
140
+ "v3" => "ǚ",
141
+ "v4" => "ǜ",
142
+ "v5" => "ü",
143
+ "ve1" => "üē",
144
+ "ve2" => "üé",
145
+ "ve3" => "üě",
146
+ "ve4" => "üè",
147
+ "ve5" => "üe",
148
+ 'm1' => 'm̄',#using combining diacritical marks
149
+ 'm2' => "ḿ",
150
+ 'm3' => 'm̌',#using combining diacritical marks
151
+ 'm4' => "m̀",#using combining diacritical marks
152
+ 'm5' => 'm',
153
+ 'n1' => 'ēn',
154
+ 'n2' => "én",
155
+ 'n3' => "ěn",
156
+ 'n4' => "èn",
157
+ 'n5' => 'en',
158
+ 'ng1' => 'ēng',
159
+ 'ng2' => "éng",
160
+ 'ng3' => "ěng",
161
+ 'ng4' => "èng",
162
+ 'ng5' => 'eng'
163
163
  }
164
164
  end
165
165
  end
@@ -0,0 +1,56 @@
1
+ #encoding: utf-8
2
+
3
+ module ZhongwenTools
4
+ UNICODE_CAPS = {
5
+ 'Ā' => 'ā',
6
+ 'Á' => 'á',
7
+ 'Ǎ' => 'ǎ',
8
+ 'À' => 'à',
9
+ 'Ē' => 'ē',
10
+ 'É' => 'é',
11
+ 'Ě' => 'ě',
12
+ 'È' => 'è',
13
+ 'Ī' => 'ī',
14
+ 'Í' => 'í',
15
+ 'Ǐ' => 'ǐ',
16
+ 'Ì' => 'ì',
17
+ 'Ō' => 'ō',
18
+ 'Ó' => 'ó',
19
+ 'Ǒ' => 'ǒ',
20
+ 'Ò' => 'ò',
21
+ 'Ǖ' => 'ǖ',# using combining diatrical marks
22
+ 'Ǘ' => 'ǘ',# using combining diatrical marks
23
+ 'Ǚ' => 'ǚ',# using combining diatrical marks
24
+ 'Ǜ' => 'ǜ',# using combining diatrical marks
25
+ 'Ū' => 'ū',
26
+ 'Ú' => 'ú',
27
+ 'Ǔ' => 'ǔ',
28
+ 'Ù' => 'ù',
29
+ "A" => "a",
30
+ "B" => "b",
31
+ "C" => "c",
32
+ "D" => "d",
33
+ "E" => "e",
34
+ "F" => "f",
35
+ "G" => "g",
36
+ "H" => "h",
37
+ "I" => "i",
38
+ "J" => "j",
39
+ "K" => "k",
40
+ "L" => "l",
41
+ "M" => "m",
42
+ "N" => "n",
43
+ "O" => "o",
44
+ "P" => "p",
45
+ "Q" => "q",
46
+ "R" => "r",
47
+ "S" => "s",
48
+ "T" => "t",
49
+ "U" => "u",
50
+ "V" => "v",
51
+ "W" => "w",
52
+ "X" => "x",
53
+ "Y" => "y",
54
+ "Z" => "z"
55
+ }
56
+ end
@@ -2,14 +2,37 @@
2
2
  #$:.unshift File.join(File.dirname(__FILE__),'..','lib','zhongwen_tools', 'string')
3
3
  require 'uri'
4
4
  require File.expand_path("../string/fullwidth", __FILE__)
5
+ require File.expand_path("../string/caps", __FILE__)
6
+
7
+ class String
8
+ alias_method :_downcase, :downcase
9
+ alias_method :_upcase, :upcase
10
+
11
+ def downcase
12
+ self._downcase.gsub(/(#{ZhongwenTools::UNICODE_CAPS.keys.join('|')})/){
13
+ ZhongwenTools::UNICODE_CAPS[$1]
14
+ }
15
+ end
16
+
17
+ def upcase
18
+ self._upcase.gsub(/(#{ZhongwenTools::UNICODE_CAPS.values.join('|')})/){
19
+ ZhongwenTools::UNICODE_CAPS.find{|k,v| v == $1}[0]
20
+ }
21
+ end
22
+
23
+ def capitalize
24
+ #sub only substitues the first occurence.
25
+ self.sub(self.chars[0], self.chars[0].upcase)
26
+ end
27
+ end
5
28
 
6
29
  module ZhongwenTools
7
30
  module String
31
+
8
32
  UNICODE_REGEX = {
9
33
  :zh => /[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u3005|\u3007]|[\u3021-\u3029]|[\u3038-\u303B]|[\u3400-\u4DB5]|[\u4E00-\u9FCC]|[\uF900-\uFA6D]|[\uFA70-\uFAD9]/,
10
34
  :punc => /[\u0021-\u0023]|[\u0025-\u002A]|[\u002C-\u002F]|[\u003A\u003B\u003F\u0040]|[\u005B-\u005D\u005F\u007B\u007D\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387]|[\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F]|[\u066A-\u066D]|[\u06D4]|[\u0700-\u070D]|[\u07F7-\u07F9]|[\u0830-\u083E]|[\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B]|[\u0F04-\u0F12]|[\u0F14]|[\u0F3A-\u0F3D]|[\u0F85]|[\u0FD0-\u0FD4]|[\u0FD9\u0FDA]|[\u104A-\u104F]|[\u10FB]|[\u1360-\u1368]|[\u1400\u166D\u166E\u169B\u169C]|[\u16EB-\u16ED]|[\u1735\u1736]|[\u17D4-\u17D6]|[\u17D8-\u17DA]|[\u1800-\u180A\u1944\u1945\u1A1E\u1A1F]|[\u1AA0-\u1AA6]|[\u1AA8-\u1AAD]|[\u1B5A-\u1B60]|[\u1BFC-\u1BFF]|[\u1C3B-\u1C3F]|[\u1C7E\u1C7F]|[\u1CC0-\u1CC7]|[\u1CD3]|[\u2010-\u2027]|[\u2030-\u2043]|[\u2045-\u2051]|[\u2053-\u205E]|[\u207D\u207E\u208D\u208E\u2329\u232A]|[\u2768-\u2775\u27C5\u27C6]|[\u27E6-\u27EF]|[\u2983-\u2998]|[\u29D8-\u29DB\u29FC\u29FD]|[\u2CF9-\u2CFC]|[\u2CFE\u2CFF\u2D70]|[\u2E00-\u2E2E]|[\u2E30-\u2E3B]|[\u3001-\u3003]|[\u3008-\u3011]|[\u3014-\u301F]|[\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF]|[\uA60D-\uA60F]|[\uA673\uA67E]|[\uA6F2-\uA6F7]|[\uA874-\uA877]|[\uA8CE\uA8CF]|[\uA8F8-\uA8FA]|[\uA92E\uA92F\uA95F]|[\uA9C1-\uA9CD]|[\uA9DE\uA9DF]|[\uAA5C-\uAA5F]|[\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE61]|[\uFE63\uFE68\uFE6A\uFE6B]|[\uFF01-\uFF03]|[\uFF05-\uFF0A]|[\uFF0C-\uFF0F]|[\uFF1A\uFF1B\uFF1F\uFF20]|[\uFF3B-\uFF3D]|[\uFF3F\uFF5B\uFF5D]|[\uFF5F-\uFF65]/
11
35
  }
12
-
13
36
  def to_utf8(str = nil)
14
37
  (str || self).force_encoding('utf-8')
15
38
  #TODO: better conversion functions available in categorize
@@ -27,6 +50,24 @@ module ZhongwenTools
27
50
  str.scan(/(#{UNICODE_REGEX[:zh]}+|#{UNICODE_REGEX[:punc]}+|\s+)/).join == str
28
51
  end
29
52
 
53
+ def downcase(str = nil)
54
+ str ||= self
55
+
56
+ str.downcase
57
+ end
58
+
59
+ def upcase(str = nil)
60
+ str ||= self
61
+
62
+ str.upcase
63
+ end
64
+
65
+ def capitalize(str = nil)
66
+ str ||= self
67
+
68
+ str.capitalize
69
+ end
70
+
30
71
  def has_zh_punctuation?(str = nil)
31
72
  str ||= self
32
73
 
@@ -121,6 +162,15 @@ module ZhongwenTools
121
162
  def self.reverse(*args)
122
163
  Basement.new.reverse(*args)
123
164
  end
165
+ def self.downcase(*args)
166
+ Basement.new.downcase(*args)
167
+ end
168
+ def self.upcase(*args)
169
+ Basement.new.upcase(*args)
170
+ end
171
+ def self.capitalize(*args)
172
+ Basement.new.capitalize(*args)
173
+ end
124
174
  def self.to_utf8(*args)
125
175
  Basement.new.to_utf8(*args)
126
176
  end
@@ -1,3 +1,3 @@
1
1
  module ZhongwenTools
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
data/test/test_string.rb CHANGED
@@ -109,11 +109,24 @@ class TestString < Minitest::Test
109
109
  refute @zh_punc.strip_zh_punctuation == @zh_punc, "#{@zh_punc} should not equal #{ @zh_punc.strip_zh_punctuation} "
110
110
  end
111
111
 
112
+ def test_capitalization
113
+ assert_equal @py_caps[:l], ZhongwenTools::String.downcase(@py_caps[:c])
114
+ assert_equal @py_caps[:l], @py_caps[:u].downcase
115
+
116
+ assert_equal @py_caps[:c], ZhongwenTools::String.capitalize(@py_caps[:l])
117
+ assert_equal @py_caps[:c], @py_caps[:l].capitalize
118
+
119
+ assert_equal @py_caps[:u], @py_caps[:l].upcase
120
+ assert_equal @py_caps[:u], ZhongwenTools::String.upcase(@py_caps[:l])
121
+ assert_equal 'HELLO', @fw.upcase
122
+ end
123
+
112
124
  def setup
113
125
  @str = '中文'
114
126
  @fw = 'hello'
115
127
  @hw = 'hello'
116
128
  @zh_punc = '不错吧!'
129
+ @py_caps = {:c => 'Àomén', :l => 'àomén', :u => 'ÀOMÉN'}
117
130
  end
118
131
 
119
132
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zhongwen_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Daniels
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-06 00:00:00.000000000 Z
11
+ date: 2014-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -101,6 +101,7 @@ files:
101
101
  - lib/zhongwen_tools/romanization/detect.rb
102
102
  - lib/zhongwen_tools/romanization/pyn_to_py.rb
103
103
  - lib/zhongwen_tools/string.rb
104
+ - lib/zhongwen_tools/string/caps.rb
104
105
  - lib/zhongwen_tools/string/fullwidth.rb
105
106
  - lib/zhongwen_tools/string/ruby18.rb
106
107
  - lib/zhongwen_tools/string/ruby19.rb