zhongwen_tools 0.17.1 → 0.17.3

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: 5253f60895b1fcdea86c8f43061cd5f8c647f854
4
- data.tar.gz: 75afec0bbf2e89ccbf22fbbffb76222496745805
3
+ metadata.gz: bacbcbd09a73bdd22d78e966029187c7e3dfc9a2
4
+ data.tar.gz: e259d86acb93bb114141d040c6ad2fd8a22293cd
5
5
  SHA512:
6
- metadata.gz: bf20813d7c304375d47ba1a4555d69f14364339f26f0b7afa51bca059775a1816f9cc7af4d4f91115f60b8e467346d31f049248b1cd501890805cfedb7d41627
7
- data.tar.gz: 9cc3eb9986dd62767e0d51a8257d1f0f2525956862c80a8f81debfcbf650a258f45315570f17f45c94195593e2ecb47752c777c05df2d0e85babcd5781d8fa62
6
+ metadata.gz: 93999ffd384d42b193873c9be87c94bd5784f4c49381a841fdfa2a4687ffab5f9747cfbcb4a641800fd271226ea4ef6ee1202aa849cbb5688268e73cffe2d19a
7
+ data.tar.gz: 63c7429d200a98628b00cd23db987d0b095f4d50819f8844a6855adddc4accee66a9243122ec4b54eea8b0f9305edbc2080bbd3b2f6929ea579783ad68ebd1aa
data/.travis.yml CHANGED
@@ -3,4 +3,5 @@ rvm:
3
3
  - 1.9.2
4
4
  - 1.9.3
5
5
  - 2.0.0
6
- - 2.1.1
6
+ - 2.1.5
7
+ - 2.2.0
@@ -3,13 +3,13 @@
3
3
  module ZhongwenTools
4
4
  module Regex
5
5
  def self.pyn
6
- /(#{pyn_regexes.values.join('|')}|r)([1-5])([\s\-]+)?/
6
+ @pyn ||= /(#{pyn_regexes.values.join('|')}|r)([1-5])([\s\-]+)?/
7
7
  end
8
8
 
9
9
  def self.py
10
10
  # FIXME: need to detect Ālābó
11
11
  # ([ĀÁǍÀA][io]?|[io]?|[][āáǎàaēéěèeūúǔùu]?o?|[ĒÉĚÈE]i?|[]i?|[ŌÓǑÒO]u?|[]u?|u[āáǎàaēoēéěèe]?i?|[]e?)(n?g?r?)){1,}
12
- /(#{pyn_regexes.map{|k,v| v.to_s[7..-2].gsub(/[aeiouv]/,py_tones)}.join('|')}([\s\-])?)/
12
+ @py ||= /(#{pyn_regexes.map{|k,v| v.to_s[7..-2].gsub(/[aeiouv]/,py_tones)}.join('|')}([\s\-])?)/
13
13
  end
14
14
 
15
15
  def self.pinyin_num
@@ -17,7 +17,7 @@ module ZhongwenTools
17
17
  end
18
18
 
19
19
  def self.pinyin_toneless
20
- /(#{pyn_regexes.values.join('|')}|r)([\s\-]+)?/
20
+ @pynt ||= /(#{pyn_regexes.values.join('|')}|r)([\s\-]+)?/
21
21
  end
22
22
 
23
23
  def self.fullwidth
@@ -38,8 +38,8 @@ module ZhongwenTools
38
38
  def self.split_pyn(str)
39
39
  # FIXME: ignore punctuation
40
40
  regex = str[/[1-5]/].nil? ? /(#{ZhongwenTools::Regex.pinyin_toneless})/ : /(#{ZhongwenTools::Regex.pyn}|#{ZhongwenTools::Regex.pinyin_toneless})/
41
-
42
- str.scan(regex).map{ |arr| arr[0].strip.gsub('-', '') }.flatten
41
+ # NOTE: p[/[^\-]*/].to_s is 25% faster thang gsub('-', '')
42
+ str.scan(regex).map{ |arr| arr[0].strip[/[^\-]*/].to_s }.flatten
43
43
  end
44
44
 
45
45
  def self.split_py(str)
@@ -132,7 +132,7 @@ module ZhongwenTools
132
132
  end
133
133
 
134
134
  def self.find_py(str)
135
- str.scan(ZhongwenTools::Regex.py).map{ |x| (x - [nil])[0] }
135
+ str.scan(ZhongwenTools::Regex.py).map{ |x| x.compact[0] }
136
136
  end
137
137
 
138
138
  def self.recapitalize(obj, capitalized)
@@ -174,7 +174,9 @@ module ZhongwenTools
174
174
  #
175
175
  # Returns a Regexp.
176
176
  def self.detect_regex(type)
177
- /#{romanization_values(type).sort{|x,y| x.size <=> y.size}.reverse.join('|')}/
177
+ # TODO: memoize
178
+ @memoized_detect_regex ||= {}
179
+ @memoized_detect_regex[type] ||= /#{romanization_values(type).sort{|x,y| x.size <=> y.size}.reverse.join('|')}/
178
180
  end
179
181
 
180
182
  # Internal: Selects the romanization values for a particular romanization type.
@@ -188,11 +190,13 @@ module ZhongwenTools
188
190
  #
189
191
  # Returns an Array that contains the romanization's values.
190
192
  def self.romanization_values(type)
191
- results = ZhongwenTools::Romanization::ROMANIZATIONS_TABLE.map do |r|
193
+ # TODO: memoize
194
+ @memoized_romanization_values = {}
195
+ @memoized_romanization_values[type] = ZhongwenTools::Romanization::ROMANIZATIONS_TABLE.map do |r|
192
196
  "[#{r[type][0]}#{r[type][0].upcase}]#{r[type][1..-1]}" || r[:pyn]
193
- end
197
+ end.flatten
194
198
 
195
- results.flatten
199
+ @memoized_romanization_values[type]
196
200
  end
197
201
 
198
202
  def self.romanization_module(type)
@@ -1,3 +1,3 @@
1
1
  module ZhongwenTools
2
- VERSION = '0.17.1'
2
+ VERSION = '0.17.3'
3
3
  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.17.1
4
+ version: 0.17.3
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-12-31 00:00:00.000000000 Z
11
+ date: 2015-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake