zhongwen_tools 0.17.3 → 0.17.5

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: bacbcbd09a73bdd22d78e966029187c7e3dfc9a2
4
- data.tar.gz: e259d86acb93bb114141d040c6ad2fd8a22293cd
3
+ metadata.gz: e122be905ec8ae3b0b3a65a76ad5fa933cc3193a
4
+ data.tar.gz: 3b56c89628c85d369e51f12506632fdf6607930f
5
5
  SHA512:
6
- metadata.gz: 93999ffd384d42b193873c9be87c94bd5784f4c49381a841fdfa2a4687ffab5f9747cfbcb4a641800fd271226ea4ef6ee1202aa849cbb5688268e73cffe2d19a
7
- data.tar.gz: 63c7429d200a98628b00cd23db987d0b095f4d50819f8844a6855adddc4accee66a9243122ec4b54eea8b0f9305edbc2080bbd3b2f6929ea579783ad68ebd1aa
6
+ metadata.gz: 6fa55501be98d80df5618b1220a90190438806c98ce55984217f147d7844d178dddeb5c4c1456ae3be075e1f9cfd77b296ffc0496256d9efeaaf7878487f48ab
7
+ data.tar.gz: 83d9a37cbcb286de3eb71fa5ce96647b0b165f9dd86efd4547edae16659919ebcc0d67878b9146507180f179391c8afee4c1b95ccd7c3a7cb56e9a6e1ea340b6
data/README.md CHANGED
@@ -2,8 +2,8 @@
2
2
  Methods for dealing with Chinese.
3
3
 
4
4
  [![Build
5
- Status](https://travis-ci.org/stevendaniels/zhongwen_tools.png?branch=master)](https://travis-ci.org/stevendaniels/zhongwen_tools) [![Dependency Status](https://gemnasium.com/stevendaniels/zhongwen_tools.png)](https://gemnasium.com/stevendaniels/zhongwen_tools) [![Code Climate](https://codeclimate.com/github/stevendaniels/zhongwen_tools.png)](https://codeclimate.com/github/stevendaniels/zhongwen_tools) [![Coverage Status](https://coveralls.io/repos/stevendaniels/zhongwen_tools/badge.png)](https://coveralls.io/r/stevendaniels/zhongwen_tools)
6
- [![Gem Version](https://badge.fury.io/rb/zhongwen_tools.png)](http://badge.fury.io/rb/zhongwen_tools)
5
+ Status](https://img.shields.io/travis/stevendaniels/zhongwen_tools.svg?style=flat-square)](https://travis-ci.org/stevendaniels/zhongwen_tools) [![Dependency Status](https://img.shields.io/gemnasium/stevendaniels/zhongwen_tools.svg?style=flat-square)](https://gemnasium.com/stevendaniels/zhongwen_tools) [![Code Climate](https://img.shields.io/codeclimate/github/stevendaniels/zhongwen_tools.svg?style=flat-square)](https://codeclimate.com/github/stevendaniels/zhongwen_tools) [![Coverage Status](https://img.shields.io/coveralls/stevendaniels/zhongwen_tools.svg?style=flat-square)](https://coveralls.io/r/stevendaniels/zhongwen_tools)
6
+ [![Gem Version](https://img.shields.io/gem/v/zhongwen_tools.svg?style=flat-square)](http://badge.fury.io/rb/zhongwen_tools)
7
7
 
8
8
  ##INSTALLATION
9
9
 
@@ -44,7 +44,7 @@ module ZhongwenTools
44
44
 
45
45
  def self.convert(obj, to, from, separator = '')
46
46
  fail ArgumentError unless [:zhs, :zht, :i, :pyn].include?(to.to_sym)
47
- fail ArgumentError unless [String, Integer, Fixnum].include?(obj.class)
47
+ fail ArgumentError unless [String, Integer, Fixnum, Bignum].include?(obj.class)
48
48
 
49
49
  number = convert_from from, to, obj
50
50
 
@@ -61,7 +61,7 @@ module ZhongwenTools
61
61
  def self.number_type(obj)
62
62
  klass = obj.class
63
63
 
64
- if klass == Fixnum || klass == Integer
64
+ if [Fixnum, Integer, Bignum].include?(klass)
65
65
  :i
66
66
  else
67
67
  if ZhongwenTools::Zhongwen.zh?(obj)
@@ -175,7 +175,13 @@ module ZhongwenTools
175
175
  if i == 0
176
176
  result << convert_integer(num, to) unless num == 0
177
177
  else
178
- result << convert_wan_level(i, to)
178
+ if i < 5
179
+ result << convert_wan_level(i, to)
180
+ elsif i == 8
181
+ result << convert_wan_level(i, to)
182
+ else
183
+ result << "#{ convert_wan_level(i - (i / 4 * 4), to) }#{ convert_wan_level((i / 4 * 4), to) }"
184
+ end
179
185
  # checks the wan level and ...
180
186
  result << convert_integer(num, to) if wan_ok?(num, wan, i)
181
187
  end
@@ -189,7 +195,7 @@ module ZhongwenTools
189
195
  end
190
196
 
191
197
  def self.wan_ok?(num, wan, i)
192
- (num == 1 && (10**(i) / 10_000 ** wan) != 10) || num != 1
198
+ (num == 1 && (10**(i) / 10_000 ** wan) != 10) || num != 1
193
199
  end
194
200
 
195
201
  def self.wan_level(wan, i)
@@ -215,7 +221,7 @@ module ZhongwenTools
215
221
  # FIXME: is finalize_number the best name you can think of?
216
222
  # NOTE: Figuring out usage of "liang" vs. "er" is pretty
217
223
  # difficult, so always use "er" instead.
218
- number.join(separator).gsub(/零#{ZhongwenTools::Regex.zh_number_multiple}/u,'')
224
+ number.join(separator).gsub(/零[#{ Regex.zh_number_multiple }]*/u,'')
219
225
  end
220
226
  end
221
227
  end
@@ -2,8 +2,10 @@
2
2
 
3
3
  module ZhongwenTools
4
4
  module Number
5
- # TODO: Add huge numbers.
6
- # 垓 秭 穰 溝 澗 正 載 --> beyond 100,000,000!
5
+ # TODO: Add huge numbers. http://en.wikipedia.org/wiki/Chinese_numerals#Large_numbers
6
+ # 垓=亿 (archaic)
7
+ # 秭: 1B or 100B or 1T or 10000T (archaic)
8
+ # 穰 溝 澗 正 載 --> beyond 100,000,000!
7
9
  # NOTE: financial numbers i == 0 ? NT.select{ |x| x[:i] == i }.last[:zhs] : NT.find{ |x| x[:i] = i }
8
10
  NUMBERS_TABLE = [
9
11
  { zhs: '零', zht: '零', i: 0, pyn: 'ling2' },
@@ -39,6 +41,7 @@ module ZhongwenTools
39
41
  { zhs: '仟', zht: '仟', i: 1_000, pyn: 'qian1' },
40
42
  { zhs: '万', zht: '萬', i: 10_000, pyn: 'wan4' },
41
43
  { zhs: '亿', zht: '億', i: 100_000_000, pyn: 'yi4' },
44
+ { zhs: '京', zht: '京', i: 1_000_000_000_000_000, pyn: 'jing1' }
42
45
  ]
43
46
  end
44
47
  end
@@ -138,7 +138,7 @@ module ZhongwenTools
138
138
  end
139
139
 
140
140
  def split_romanization
141
- ZhongwenTools::romanization.split(self)
141
+ ZhongwenTools::Romanization.split(self)
142
142
  end
143
143
 
144
144
  def zhs?
@@ -1,3 +1,3 @@
1
1
  module ZhongwenTools
2
- VERSION = '0.17.3'
2
+ VERSION = '0.17.5'
3
3
  end
data/test/test_number.rb CHANGED
@@ -76,4 +76,10 @@ class TestNumber < Minitest::Test
76
76
  assert_equal n[:i], ZhongwenTools::Number.to_i(n[:zhs])
77
77
  end
78
78
  end
79
+
80
+ def test_large_numbers
81
+ assert_equal '五十万', ZhongwenTools::Number.to_zhs(500_000)
82
+ assert_equal '五十亿', ZhongwenTools::Number.to_zhs(5_000_000_000)
83
+ #assert_equal '五万亿', ZhongwenTools::Number.to_zhs(5_000_000_000_000)
84
+ end
79
85
  end
@@ -1,31 +1,31 @@
1
1
  # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
2
+ $:.push File.expand_path('../lib', __FILE__)
3
3
  require 'zhongwen_tools/version'
4
4
 
5
5
  Gem::Specification.new do |s|
6
- s.name = "zhongwen_tools"
7
- s.license = "MIT"
6
+ s.name = 'zhongwen_tools'
7
+ s.license = 'MIT'
8
8
  s.version = ZhongwenTools::VERSION
9
- s.authors = ["Steven Daniels"]
10
- s.email = ["steven@tastymantou.com"]
11
- s.homepage = "https://github.com/stevendaniels/zhongwen_tools"
9
+ s.authors = ['Steven Daniels']
10
+ s.email = ['steven@tastymantou.com']
11
+ s.homepage = 'https://github.com/stevendaniels/zhongwen_tools'
12
12
  s.summary = %q{Zhongwen Tools provide romanization conversions and helper methods for Chinese.}
13
13
  s.description = %q{Chinese tools for romanization conversions and other helpful string functions for Chinese.}
14
- s.rubyforge_project = "zhongwen_tools"
14
+ s.rubyforge_project = 'zhongwen_tools'
15
15
 
16
16
  s.files = `git ls-files`.split("\n")
17
17
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
- s.require_paths = ["lib"]
19
+ s.require_paths = ['lib']
20
20
 
21
- s.add_development_dependency('rake', "~> 10.1")
21
+ s.add_development_dependency('rake', '~> 10.1')
22
22
  if RUBY_VERSION >= '1.9'
23
- s.add_development_dependency('simplecov', '~> 0.7', '>= 0.7.0')
23
+ s.add_development_dependency('simplecov', '~> 0.9', '>= 0.9.1')
24
24
  s.add_development_dependency('simplecov-gem-adapter', '~> 1.0', '>= 1.0.1')
25
25
  s.add_development_dependency('coveralls', '~> 0.7', '>= 0.7.0')
26
- s.add_development_dependency('minitest', '~> 5.3', '>= 5.3.0')
27
- s.add_development_dependency('pry', '~> 0.9', '>= 0.9.12')
28
- s.add_development_dependency('minitest-reporters', '~> 1.0', '>= 1.0.4')
26
+ s.add_development_dependency('minitest', '~> 5.5', '>= 5.5.1')
27
+ s.add_development_dependency('pry', '~> 0.10', '>= 0.10.1')
28
+ s.add_development_dependency('minitest-reporters', '~> 1.0', '>= 1.0.10')
29
29
  end
30
30
 
31
31
  if RUBY_VERSION >= '2.1'
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.3
4
+ version: 0.17.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Daniels
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-10 00:00:00.000000000 Z
11
+ date: 2015-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -30,20 +30,20 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.7'
33
+ version: '0.9'
34
34
  - - ">="
35
35
  - !ruby/object:Gem::Version
36
- version: 0.7.0
36
+ version: 0.9.1
37
37
  type: :development
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: '0.7'
43
+ version: '0.9'
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 0.7.0
46
+ version: 0.9.1
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: simplecov-gem-adapter
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -90,40 +90,40 @@ dependencies:
90
90
  requirements:
91
91
  - - "~>"
92
92
  - !ruby/object:Gem::Version
93
- version: '5.3'
93
+ version: '5.5'
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 5.3.0
96
+ version: 5.5.1
97
97
  type: :development
98
98
  prerelease: false
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '5.3'
103
+ version: '5.5'
104
104
  - - ">="
105
105
  - !ruby/object:Gem::Version
106
- version: 5.3.0
106
+ version: 5.5.1
107
107
  - !ruby/object:Gem::Dependency
108
108
  name: pry
109
109
  requirement: !ruby/object:Gem::Requirement
110
110
  requirements:
111
111
  - - "~>"
112
112
  - !ruby/object:Gem::Version
113
- version: '0.9'
113
+ version: '0.10'
114
114
  - - ">="
115
115
  - !ruby/object:Gem::Version
116
- version: 0.9.12
116
+ version: 0.10.1
117
117
  type: :development
118
118
  prerelease: false
119
119
  version_requirements: !ruby/object:Gem::Requirement
120
120
  requirements:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: '0.9'
123
+ version: '0.10'
124
124
  - - ">="
125
125
  - !ruby/object:Gem::Version
126
- version: 0.9.12
126
+ version: 0.10.1
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: minitest-reporters
129
129
  requirement: !ruby/object:Gem::Requirement
@@ -133,7 +133,7 @@ dependencies:
133
133
  version: '1.0'
134
134
  - - ">="
135
135
  - !ruby/object:Gem::Version
136
- version: 1.0.4
136
+ version: 1.0.10
137
137
  type: :development
138
138
  prerelease: false
139
139
  version_requirements: !ruby/object:Gem::Requirement
@@ -143,7 +143,7 @@ dependencies:
143
143
  version: '1.0'
144
144
  - - ">="
145
145
  - !ruby/object:Gem::Version
146
- version: 1.0.4
146
+ version: 1.0.10
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: memory_profiler
149
149
  requirement: !ruby/object:Gem::Requirement