chinese_numerals 0.0.2 → 0.0.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: 3c0390909dd344229b6cb2f2136213ff1fb55d49
4
- data.tar.gz: f5c83024665d0d2c04519eb476d3a3c7b33e7c0c
3
+ metadata.gz: 824c680508fe9a51c6eb7faa7395f8845afd24e6
4
+ data.tar.gz: 9a6f26dbc6aee7a4197d1a0b496583eadfcc11fa
5
5
  SHA512:
6
- metadata.gz: e454675c52fc8d54d9516fd88973a23fd3cdc879ff90f24d153d2808e3e0af13dd9b84ced5e728a29f04490eae4cf8b253d6a1739ee14f74eee6b4d63bdf12e4
7
- data.tar.gz: 268cb2b703c7fcda17d13978647ef5ff24c906dcf0fa62eca6ef11a520b741a13dd6ccf64a8b2fc7638a021102c0bc3939800f7195c6d3cefaa8bcf114f8bdef
6
+ metadata.gz: 3ce7cf55503d82251ad7065832c9d54309e777c0ce5cf9ea871415eaeb50dd7f6fb96704fc60c825970cf73d0aa383089a12a00527a87c049aef46ce1e2cbe3a
7
+ data.tar.gz: 3f38015e8e77a3eb1202dcd23894e3f1351a1f4812db7a9435a5c477ed9e0f21d2462656711ebce00ddefc52ae692ee936dec321d76ebb5c3c0e34f59d444ff7
@@ -1,3 +1,3 @@
1
1
  module ChineseNumerals
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -12,7 +12,8 @@ Integer.class_eval do
12
12
  def to_chinese(args = {})
13
13
  opts = {
14
14
  :simple => true,
15
- :decimal => false
15
+ :decimal => false,
16
+ :shorten => false
16
17
  }.merge args
17
18
 
18
19
  chinese_numbers = opts[:simple] ? SIMPLE_CHINESE_NUMBERS : FORMAL_CHINESE_NUMBERS
@@ -28,6 +29,12 @@ Integer.class_eval do
28
29
 
29
30
  0.upto len - 1 do |i|
30
31
  digit = str[i].to_i
32
+
33
+ if (i == 0) && (digit == 1) && (len % 4 == 2) && opts[:shorten]
34
+ res << chinese_decimals[1]
35
+ next
36
+ end
37
+
31
38
  if digit == 0
32
39
  zeros += 1
33
40
  else
@@ -38,10 +45,10 @@ Integer.class_eval do
38
45
  res << chinese_numbers[digit] + chinese_decimals[(len - 1 - i) % 4]
39
46
  end
40
47
  # append group name unless 4 zeros met
41
- if (len - 1 - i) % 4 == 0
42
- res << CHINESE_GROUPS[(len - 1 - i) / 4] unless zeros == 4
43
- # reset zeros for each group
44
- zeros = 0
48
+ if ((len - 1 - i) % 4 == 0) && (zeros < 4)
49
+ res << CHINESE_GROUPS[(len - 1 - i) / 4]
50
+ # reset zeros for each group
51
+ zeros = 0
45
52
  end
46
53
  end
47
54
 
@@ -34,8 +34,11 @@ describe Integer do
34
34
  end
35
35
 
36
36
  it "knows output and omit zeros in decimal mode" do
37
- 10000002000.to_chinese(:decimal => true).must_equal("一百億二千")
37
+ 10000000200.to_chinese(:decimal => true).must_equal("一百億零二百")
38
38
  end
39
39
 
40
+ it "is able to shorten the leading 1 in decimal mode" do
41
+ 108000.to_chinese(:decimal => true, :shorten => true).must_equal("十萬八千")
42
+ end
40
43
  end
41
44
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chinese_numerals
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fox Chao