zhongwen_tools 0.18.4 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
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: