zhongwen_tools 0.18.4 → 0.19.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 87292bf853bdd642cf95b4f28d163ba79ca92ffd
4
+ data.tar.gz: 4ecc9dce49d0eba08b910f0dceea0da7001a3fde
5
+ SHA512:
6
+ metadata.gz: b39dfe2644f3f10776635d601fccb2d383ba356769556f8338135b7b9b46ada44753bd9d554816b8277b21f0b236fc9d0cc031abc05e16e81787e4764c1280d1
7
+ data.tar.gz: 56f86364a7b9a882353287a85648af8b110b09205493f7d918fca5d69a950367e33f9c71a0d3a3871724df9395ac4c3b6f1ae8b592d5c845db4d3344389fa87c
@@ -4,23 +4,19 @@ require 'zhongwen_tools/zhongwen'
4
4
  require 'zhongwen_tools/romanization/pinyin'
5
5
  require 'zhongwen_tools/number/number_table'
6
6
 
7
- # Number.to_pyn, to_i, to_zhs, etc.
8
7
  module ZhongwenTools
8
+ # Number.to_pyn, to_i, to_zhs, etc.
9
9
  module Number
10
10
  def self.number?(obj)
11
- klass = obj.class
12
-
13
- if klass == String
11
+ case obj
12
+ when String
14
13
  regex = /([\d]|#{ZhongwenTools::Regex.zh_numbers}){1,}/
15
- "#{obj}".gsub(regex, '') == ''
16
- elsif klass == Integer
17
- true
18
- elsif klass == Fixnum
14
+ "#{obj}".gsub(regex, '') == ''
15
+ when Integer, Fixnum, Float
19
16
  true
20
17
  end
21
18
  end
22
19
 
23
- #needs to be a class method
24
20
  %w(i zhs zht pyn).each do |action|
25
21
  define_singleton_method("to_#{ action }") do |*args|
26
22
  obj, from, separator = args
@@ -31,9 +27,8 @@ module ZhongwenTools
31
27
  end
32
28
 
33
29
  def self.to_zh(obj, type = :zhs, from = nil)
34
- type = type.to_sym
35
-
36
- if type == :zht
30
+ case type.to_sym
31
+ when :zht
37
32
  to_zht(obj, from)
38
33
  else
39
34
  to_zhs(obj, from)
@@ -51,7 +46,7 @@ module ZhongwenTools
51
46
  if to == :i
52
47
  combine_integers(number)
53
48
  elsif to == :pyn
54
- regex = /#{ %w(yi4 wan4 qian1 bai2 shi2).map{ |x| 'ling2\-' + x }.join('|')}/
49
+ regex = /#{ %w(yi4 wan4 qian1 bai2 shi2).map { |x| 'ling2\-' + x }.join('|')}/
55
50
  finalize_number(number, '-').gsub(regex, '').gsub(/\-+/, '-').gsub(/\-$/, '')
56
51
  else
57
52
  finalize_number(number)
@@ -65,15 +60,13 @@ module ZhongwenTools
65
60
  :i
66
61
  else
67
62
  if ZhongwenTools::Zhongwen.zh?(obj)
68
- # need to check zhs or zht
69
63
  if zht?(obj)
70
64
  :zht
71
65
  else
72
66
  :zhs
73
67
  end
74
- else #assume it is pyn
75
- #if ZhongwenTools.const_defined?(:Romanization) && ZhongwenTools::Romanization.romanization?(obj)
76
- # might need to convert to pyn
68
+ else # assume it is pyn
69
+ # FIXME: might need to convert to pyn
77
70
  :pyn
78
71
  end
79
72
  end
@@ -105,13 +98,13 @@ module ZhongwenTools
105
98
  pyns = ZhongwenTools::Romanization::Pinyin.split_pyn(pyn)
106
99
 
107
100
  pyns.map do |p|
108
- convert_number(p).fetch( to ){ p }
101
+ convert_number(p).fetch(to) { p }
109
102
  end
110
103
  end
111
104
 
112
105
  def self.convert_from_zh(to, number)
113
106
  converted_number = number.chars.map do |zh|
114
- convert_number(zh).fetch(to){ zh }
107
+ convert_number(zh).fetch(to) { zh }
115
108
  end
116
109
 
117
110
  converted_number
@@ -127,7 +120,7 @@ module ZhongwenTools
127
120
  integers.each_with_index do |curr_num, i|
128
121
  next if skipped == i
129
122
 
130
- if (i+2) <= length
123
+ if (i + 2) <= length
131
124
  number, i = combine_integer(integers, number, curr_num, i)
132
125
  skipped = i + 1
133
126
  else
@@ -139,18 +132,16 @@ module ZhongwenTools
139
132
  end
140
133
 
141
134
  def self.year?(integers)
142
- integers.select{ |i| i < 10 }.size == integers.size
135
+ integers.select { |i| i < 10 }.size == integers.size
143
136
  end
144
137
 
145
138
  def self.combine_year(integers)
146
- integers.map{ |i| i.to_s }.join.to_i
139
+ integers.map(&:to_s).join.to_i
147
140
  end
148
141
 
149
- def self.combine_integer integers, result, curr_num, i
142
+ def self.combine_integer(integers, result, curr_num, i)
150
143
  next_number = integers[i + 1]
151
- if number_multiplier? next_number
152
- result += next_number * curr_num
153
- end
144
+ result += next_number * curr_num if number_multiplier?(next_number)
154
145
 
155
146
  [result, i]
156
147
  end
@@ -163,8 +154,7 @@ module ZhongwenTools
163
154
  [10, 100, 1_000, 10_000, 100_000_000].include? number
164
155
  end
165
156
 
166
-
167
- def self.convert_from_integer to, int
157
+ def self.convert_from_integer(to, int)
168
158
  # FIXME: this will fail for numbers over 1 billion.
169
159
  result = []
170
160
  nums = convert_integer_to_reversed_array_of_integers(int)
@@ -191,11 +181,11 @@ module ZhongwenTools
191
181
  end
192
182
 
193
183
  def self.convert_integer_to_reversed_array_of_integers(int)
194
- int.to_s.chars.to_a.reverse.map{ |x| x.to_i }
184
+ int.to_s.chars.to_a.reverse.map(&:to_i)
195
185
  end
196
186
 
197
187
  def self.wan_ok?(num, wan, i)
198
- (num == 1 && (10**(i) / 10_000 ** wan) != 10) || num != 1
188
+ (num == 1 && (10**(i) / 10_000**wan) != 10) || num != 1
199
189
  end
200
190
 
201
191
  def self.wan_level(wan, i)
@@ -210,18 +200,18 @@ module ZhongwenTools
210
200
  end
211
201
 
212
202
  def self.convert_integer(int, to)
213
- NUMBERS_TABLE.find{ |x| x[:i] == int }.fetch(to){ 0 }
203
+ NUMBERS_TABLE.find { |x| x[:i] == int }.fetch(to) { 0 }
214
204
  end
215
205
 
216
206
  def self.convert_number(number)
217
- NUMBERS_TABLE.find{ |x| x[:zhs] == number || x[:zht] == number || x[:pyn] == number }
207
+ NUMBERS_TABLE.find { |x| x[:zhs] == number || x[:zht] == number || x[:pyn] == number }
218
208
  end
219
209
 
220
210
  def self.finalize_number(number, separator = '')
221
211
  # FIXME: is finalize_number the best name you can think of?
222
212
  # NOTE: Figuring out usage of "liang" vs. "er" is pretty
223
213
  # difficult, so always use "er" instead.
224
- number.join(separator).gsub(/零[#{ Regex.zh_number_multiple }]*/u,'')
214
+ number.join(separator).gsub(/零[#{ Regex.zh_number_multiple }]*/u, '')
225
215
  end
226
216
  end
227
217
  end
@@ -10,6 +10,18 @@ module ZhongwenTools
10
10
  @py ||= /(#{pyn_regexes.map { |_k, v| v.to_s[7..-2].gsub(/[aeiouv]/, py_tones) }.join('|')}([\s\-])?)/
11
11
  end
12
12
 
13
+ def self.pinyin_caps
14
+ @pinyin_caps ||= /#{py}|[ĀÁǍÀĒÉĚÈĪÍǏÌŌÓǑÒ]|#{py_syllabic_nasals}/
15
+ end
16
+
17
+ def self.pyn_and_pynt
18
+ @pyn_and_pynt ||= /(#{ Regex.pyn }|#{ Regex.pinyin_toneless })/
19
+ end
20
+
21
+ def self.capture_pinyin_toneless
22
+ @capture_pinyin_toneless ||= /(#{ Regex.pinyin_toneless })/
23
+ end
24
+
13
25
  def self.pinyin_num
14
26
  # FIXME: n?g? might need to be replaced with (ng|n)?
15
27
  /(([BPMFDTNLGKHZCSRJQXWYbpmfdtnlgkhzcsrjqxwy]?[h]?)(A[io]?|a[io]?|i[aeu]?o?|Ei?|ei?|Ou?|ou?|u[aoe]?i?|ve?)?(n?g?)(r?)([1-5])(\-+)?)/
@@ -24,11 +36,11 @@ module ZhongwenTools
24
36
  end
25
37
 
26
38
  def self.capital_letters
27
- /(#{Regexp.union(ZhongwenTools::Caps::CAPS.keys)})/
39
+ @capital_letters ||= /(#{Regexp.union(ZhongwenTools::Caps::CAPS.keys)})/
28
40
  end
29
41
 
30
42
  def self.lowercase_letters
31
- /(#{Regexp.union(ZhongwenTools::Caps::CAPS.values)})/
43
+ @lowercase_letters ||= /(#{Regexp.union(ZhongwenTools::Caps::CAPS.values)})/
32
44
  end
33
45
 
34
46
  def self.zh
@@ -41,7 +53,7 @@ module ZhongwenTools
41
53
 
42
54
  def self.zh_punc
43
55
  # TODO: includes non-zh punctuation codes. Should only include punctuation in CJK ranges.
44
- /[\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]/
56
+ @zh_punc ||= /[\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]/
45
57
  end
46
58
 
47
59
  def self.zh_numbers
@@ -38,10 +38,15 @@ module ZhongwenTools
38
38
  end
39
39
 
40
40
  def self.split_pyn(str)
41
+ # NOTE: This methods is called quite frequently. Unfortunately, it was
42
+ # slower than it needed to be. After looking into several
43
+ # optimizations, I ended up settling on one that cached the Regexp
44
+ # creation.
41
45
  # FIXME: ignore punctuation
42
- regex = str[/[1-5]/].nil? ? /(#{ Regex.pinyin_toneless })/ : /(#{ Regex.pyn }|#{ Regex.pinyin_toneless })/
43
- # NOTE: p[/[^\-]*/].to_s is 25% faster than gsub('-', '')
44
- str.scan(regex).map { |arr| arr[0].strip[/[^\-]*/].to_s }.flatten
46
+ regex = str[simple_tone_numbers].nil? ? Regex.capture_pinyin_toneless : Regex.pyn_and_pynt
47
+ # NOTE: Fast Ruby: p[/[^\-]*/].to_s is 25% faster than gsub('-', '')
48
+ strip_regex = not_hyphen_regex
49
+ str.scan(regex).flat_map { |arr| arr[0].strip[strip_regex].to_s }
45
50
  end
46
51
 
47
52
  def self.split_py(str)
@@ -110,6 +115,14 @@ module ZhongwenTools
110
115
 
111
116
  private
112
117
 
118
+ def self.simple_tone_numbers
119
+ @simple_tone_numbers ||= /[1-5]/
120
+ end
121
+
122
+ def self.not_hyphen_regex
123
+ @not_hyphen_regex ||= /[^\-]*/
124
+ end
125
+
113
126
  def self.pyn_matches_properly?(pyn_arr, normalized_str)
114
127
  pyn_arr.join('') == normalized_str
115
128
  end
@@ -190,7 +203,7 @@ module ZhongwenTools
190
203
  end
191
204
 
192
205
  def self.capitalized?(str)
193
- first_letter = str[/#{Regex.py}|[ĀÁǍÀĒÉĚÈĪÍǏÌŌÓǑÒ]|#{Regex.py_syllabic_nasals}/][0]
206
+ first_letter = str[ZhongwenTools::Regex.pinyin_caps][0]
194
207
 
195
208
  first_letter != Caps.downcase(first_letter)
196
209
  end
@@ -1,3 +1,3 @@
1
1
  module ZhongwenTools
2
- VERSION = '0.18.4'
2
+ VERSION = '0.19.0'
3
3
  end
data/test/test_number.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
- $:.unshift File.join(File.dirname(__FILE__),'..','lib')
2
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
3
3
 
4
4
  require './test/test_helper'
5
5
  require 'zhongwen_tools/number'
@@ -9,21 +9,22 @@ class TestNumber < Minitest::Test
9
9
  { zhs: '一万二千七', zht: '一萬二千七', i: 12_007, pyn: 'yi1-wan4-er4-qian1-qi1' },
10
10
  { zhs: '三千六十三', zht: '三千六十三', i: 3_063, pyn: 'san1-qian1-liu4-shi2-san1' },
11
11
  { zhs: '一百五十', zht: '一百五十', i: 150, pyn: 'yi1-bai2-wu3-shi2' },
12
- #{ zhs: '三千亿', i: 300_000_000_000, pyn: '' },
12
+ # { zhs: '三千亿', i: 300_000_000_000, pyn: '' },
13
13
  ]
14
14
 
15
15
  @liang_number = { zhs: '一万两千七', i: 12_007, pyn: '' }
16
16
  @date_numbers = [
17
17
  { zhs: '一九六六', i: 1966, pyn: '' },
18
- { zhs: '二零零八', i: 2008, pyn: '' },
18
+ { zhs: '二零零八', i: 2008, pyn: '' }
19
19
  ]
20
20
  end
21
21
 
22
22
  def test_number?
23
23
  assert ZhongwenTools::Number.number? '一'
24
24
  assert ZhongwenTools::Number.number? 1
25
+ assert ZhongwenTools::Number.number? 1.0
25
26
 
26
- @numbers.map{ |n| n[:zhs]}.each do |zh|
27
+ @numbers.map { |n| n[:zhs] }.each do |zh|
27
28
  assert ZhongwenTools::Number.number?(zh), "#{zh}"
28
29
  end
29
30
  end
@@ -35,7 +36,6 @@ class TestNumber < Minitest::Test
35
36
  assert_equal n[:pyn], ZhongwenTools::Number.to_pyn(n[type])
36
37
  end
37
38
  end
38
-
39
39
  end
40
40
 
41
41
  def test_to_zhs
@@ -73,13 +73,13 @@ class TestNumber < Minitest::Test
73
73
  end
74
74
 
75
75
  @date_numbers.each do |n|
76
- assert_equal n[:i], ZhongwenTools::Number.to_i(n[:zhs])
76
+ assert_equal n[:i], ZhongwenTools::Number.to_i(n[:zhs])
77
77
  end
78
78
  end
79
79
 
80
80
  def test_large_numbers
81
81
  assert_equal '五十万', ZhongwenTools::Number.to_zhs(500_000)
82
82
  assert_equal '五十亿', ZhongwenTools::Number.to_zhs(5_000_000_000)
83
- #assert_equal '五万亿', ZhongwenTools::Number.to_zhs(5_000_000_000_000)
83
+ # assert_equal '五万亿', ZhongwenTools::Number.to_zhs(5_000_000_000_000)
84
84
  end
85
85
  end
metadata CHANGED
@@ -1,164 +1,163 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zhongwen_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.4
5
- prerelease:
4
+ version: 0.19.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Steven Daniels
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-05-10 00:00:00.000000000 Z
11
+ date: 2015-08-18 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: '10.1'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: '10.1'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: simplecov
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0.9'
38
- - - ! '>='
34
+ - - ">="
39
35
  - !ruby/object:Gem::Version
40
36
  version: 0.9.1
41
37
  type: :development
42
38
  prerelease: false
43
39
  version_requirements: !ruby/object:Gem::Requirement
44
- none: false
45
40
  requirements:
46
- - - ~>
41
+ - - "~>"
47
42
  - !ruby/object:Gem::Version
48
43
  version: '0.9'
49
- - - ! '>='
44
+ - - ">="
50
45
  - !ruby/object:Gem::Version
51
46
  version: 0.9.1
52
47
  - !ruby/object:Gem::Dependency
53
48
  name: simplecov-gem-adapter
54
49
  requirement: !ruby/object:Gem::Requirement
55
- none: false
56
50
  requirements:
57
- - - ~>
51
+ - - "~>"
58
52
  - !ruby/object:Gem::Version
59
53
  version: '1.0'
60
- - - ! '>='
54
+ - - ">="
61
55
  - !ruby/object:Gem::Version
62
56
  version: 1.0.1
63
57
  type: :development
64
58
  prerelease: false
65
59
  version_requirements: !ruby/object:Gem::Requirement
66
- none: false
67
60
  requirements:
68
- - - ~>
61
+ - - "~>"
69
62
  - !ruby/object:Gem::Version
70
63
  version: '1.0'
71
- - - ! '>='
64
+ - - ">="
72
65
  - !ruby/object:Gem::Version
73
66
  version: 1.0.1
74
67
  - !ruby/object:Gem::Dependency
75
68
  name: coveralls
76
69
  requirement: !ruby/object:Gem::Requirement
77
- none: false
78
70
  requirements:
79
- - - ~>
71
+ - - "~>"
80
72
  - !ruby/object:Gem::Version
81
73
  version: '0.7'
82
- - - ! '>='
74
+ - - ">="
83
75
  - !ruby/object:Gem::Version
84
76
  version: 0.7.0
85
77
  type: :development
86
78
  prerelease: false
87
79
  version_requirements: !ruby/object:Gem::Requirement
88
- none: false
89
80
  requirements:
90
- - - ~>
81
+ - - "~>"
91
82
  - !ruby/object:Gem::Version
92
83
  version: '0.7'
93
- - - ! '>='
84
+ - - ">="
94
85
  - !ruby/object:Gem::Version
95
86
  version: 0.7.0
96
87
  - !ruby/object:Gem::Dependency
97
88
  name: minitest
98
89
  requirement: !ruby/object:Gem::Requirement
99
- none: false
100
90
  requirements:
101
- - - ~>
91
+ - - "~>"
102
92
  - !ruby/object:Gem::Version
103
93
  version: '5.5'
104
- - - ! '>='
94
+ - - ">="
105
95
  - !ruby/object:Gem::Version
106
96
  version: 5.5.1
107
97
  type: :development
108
98
  prerelease: false
109
99
  version_requirements: !ruby/object:Gem::Requirement
110
- none: false
111
100
  requirements:
112
- - - ~>
101
+ - - "~>"
113
102
  - !ruby/object:Gem::Version
114
103
  version: '5.5'
115
- - - ! '>='
104
+ - - ">="
116
105
  - !ruby/object:Gem::Version
117
106
  version: 5.5.1
118
107
  - !ruby/object:Gem::Dependency
119
108
  name: pry
120
109
  requirement: !ruby/object:Gem::Requirement
121
- none: false
122
110
  requirements:
123
- - - ~>
111
+ - - "~>"
124
112
  - !ruby/object:Gem::Version
125
113
  version: '0.10'
126
- - - ! '>='
114
+ - - ">="
127
115
  - !ruby/object:Gem::Version
128
116
  version: 0.10.1
129
117
  type: :development
130
118
  prerelease: false
131
119
  version_requirements: !ruby/object:Gem::Requirement
132
- none: false
133
120
  requirements:
134
- - - ~>
121
+ - - "~>"
135
122
  - !ruby/object:Gem::Version
136
123
  version: '0.10'
137
- - - ! '>='
124
+ - - ">="
138
125
  - !ruby/object:Gem::Version
139
126
  version: 0.10.1
140
127
  - !ruby/object:Gem::Dependency
141
128
  name: minitest-reporters
142
129
  requirement: !ruby/object:Gem::Requirement
143
- none: false
144
130
  requirements:
145
- - - ~>
131
+ - - "~>"
146
132
  - !ruby/object:Gem::Version
147
133
  version: '1.0'
148
- - - ! '>='
134
+ - - ">="
149
135
  - !ruby/object:Gem::Version
150
136
  version: 1.0.10
151
137
  type: :development
152
138
  prerelease: false
153
139
  version_requirements: !ruby/object:Gem::Requirement
154
- none: false
155
140
  requirements:
156
- - - ~>
141
+ - - "~>"
157
142
  - !ruby/object:Gem::Version
158
143
  version: '1.0'
159
- - - ! '>='
144
+ - - ">="
160
145
  - !ruby/object:Gem::Version
161
146
  version: 1.0.10
147
+ - !ruby/object:Gem::Dependency
148
+ name: memory_profiler
149
+ requirement: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - '='
152
+ - !ruby/object:Gem::Version
153
+ version: 0.0.4
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - '='
159
+ - !ruby/object:Gem::Version
160
+ version: 0.0.4
162
161
  description: Chinese tools for romanization conversions and other helpful string functions
163
162
  for Chinese.
164
163
  email:
@@ -167,7 +166,7 @@ executables: []
167
166
  extensions: []
168
167
  extra_rdoc_files: []
169
168
  files:
170
- - .travis.yml
169
+ - ".travis.yml"
171
170
  - Gemfile
172
171
  - README.md
173
172
  - Rakefile
@@ -217,27 +216,26 @@ files:
217
216
  homepage: https://github.com/stevendaniels/zhongwen_tools
218
217
  licenses:
219
218
  - MIT
219
+ metadata: {}
220
220
  post_install_message:
221
221
  rdoc_options: []
222
222
  require_paths:
223
223
  - lib
224
224
  required_ruby_version: !ruby/object:Gem::Requirement
225
- none: false
226
225
  requirements:
227
- - - ! '>='
226
+ - - ">="
228
227
  - !ruby/object:Gem::Version
229
228
  version: '0'
230
229
  required_rubygems_version: !ruby/object:Gem::Requirement
231
- none: false
232
230
  requirements:
233
- - - ! '>='
231
+ - - ">="
234
232
  - !ruby/object:Gem::Version
235
233
  version: '0'
236
234
  requirements: []
237
235
  rubyforge_project: zhongwen_tools
238
- rubygems_version: 1.8.23.2
236
+ rubygems_version: 2.4.5
239
237
  signing_key:
240
- specification_version: 3
238
+ specification_version: 4
241
239
  summary: Zhongwen Tools provide romanization conversions and helper methods for Chinese.
242
240
  test_files:
243
241
  - test/test_caps.rb
@@ -255,3 +253,4 @@ test_files:
255
253
  - test/test_unicode.rb
256
254
  - test/test_uri.rb
257
255
  - test/test_zhongwen.rb
256
+ has_rdoc: