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 +4 -4
- data/README.md +2 -2
- data/lib/zhongwen_tools/number.rb +11 -5
- data/lib/zhongwen_tools/number/number_table.rb +5 -2
- data/lib/zhongwen_tools/string_extension.rb +1 -1
- data/lib/zhongwen_tools/version.rb +1 -1
- data/test/test_number.rb +6 -0
- data/zhongwen_tools.gemspec +13 -13
- metadata +16 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e122be905ec8ae3b0b3a65a76ad5fa933cc3193a
|
4
|
+
data.tar.gz: 3b56c89628c85d369e51f12506632fdf6607930f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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://
|
6
|
-
[![Gem Version](https://
|
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
|
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
|
-
|
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
|
-
|
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(
|
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
|
-
#
|
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
|
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
|
data/zhongwen_tools.gemspec
CHANGED
@@ -1,31 +1,31 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
$:.push File.expand_path(
|
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 =
|
7
|
-
s.license =
|
6
|
+
s.name = 'zhongwen_tools'
|
7
|
+
s.license = 'MIT'
|
8
8
|
s.version = ZhongwenTools::VERSION
|
9
|
-
s.authors = [
|
10
|
-
s.email = [
|
11
|
-
s.homepage =
|
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 =
|
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 = [
|
19
|
+
s.require_paths = ['lib']
|
20
20
|
|
21
|
-
s.add_development_dependency('rake',
|
21
|
+
s.add_development_dependency('rake', '~> 10.1')
|
22
22
|
if RUBY_VERSION >= '1.9'
|
23
|
-
s.add_development_dependency('simplecov', '~> 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.
|
27
|
-
s.add_development_dependency('pry', '~> 0.
|
28
|
-
s.add_development_dependency('minitest-reporters', '~> 1.0', '>= 1.0.
|
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.
|
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-
|
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.
|
33
|
+
version: '0.9'
|
34
34
|
- - ">="
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: 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.
|
43
|
+
version: '0.9'
|
44
44
|
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 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.
|
93
|
+
version: '5.5'
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 5.
|
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.
|
103
|
+
version: '5.5'
|
104
104
|
- - ">="
|
105
105
|
- !ruby/object:Gem::Version
|
106
|
-
version: 5.
|
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.
|
113
|
+
version: '0.10'
|
114
114
|
- - ">="
|
115
115
|
- !ruby/object:Gem::Version
|
116
|
-
version: 0.
|
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.
|
123
|
+
version: '0.10'
|
124
124
|
- - ">="
|
125
125
|
- !ruby/object:Gem::Version
|
126
|
-
version: 0.
|
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.
|
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.
|
146
|
+
version: 1.0.10
|
147
147
|
- !ruby/object:Gem::Dependency
|
148
148
|
name: memory_profiler
|
149
149
|
requirement: !ruby/object:Gem::Requirement
|