ziffern 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/ziffern.rb +9 -16
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 784b7651963c3d172aa3bcf7e404760f3260eefa
4
- data.tar.gz: 75236a977a0952a3a342bc443e66dfdad03cafac
3
+ metadata.gz: 3decb1b23ebb05d69c96e55a3228ff68831450ea
4
+ data.tar.gz: cc753ab15904d7dbb3de5730f4c7d1870fa0ae69
5
5
  SHA512:
6
- metadata.gz: 074a40b8cc9ab7bc119f7c9c505c0e1709cc906f012ba6b4b79b6198bb0a6b09ca09e59acde4f755810f25b59cb896db4c78af1165be399e53991a37487dbaec
7
- data.tar.gz: 088340abdc8033fa0175629cacf60dd3a1f4c4195ade5b290aaecc6ab414d5af89a2e719b780d367e3ef948bd29d14acec593b29bc77e108250d77d73aecd338
6
+ metadata.gz: a6a4ccbe9c01aafeded729931dcb876fcad6e63b88ec7de5333fa6d72ed7c95a8dcfe351d84192c142ae16aa78acb3c0007a1adb9ec0980195fa7cd4a741d2e6
7
+ data.tar.gz: 168685d82b6cd9c495800619e87eeecec0d1af51d8123cba870b49afe357c67fbbbe221112b7f241c1b9c3a8126006208b5a688c3e6f5ac8ce18dbf3c5090779
data/ziffern.rb CHANGED
@@ -14,25 +14,23 @@ class Ziffern
14
14
 
15
15
 
16
16
  def to_german(number)
17
+ return "minus #{to_german(-number)}" if number.to_f < 0
17
18
  convert_integer(number) + convert_decimals(number)
18
19
  end
19
20
 
20
21
  private
21
22
 
22
23
  def convert_integer(number)
23
- number = number.to_i
24
- return 'eins' if number == 1
25
- return "minus #{convert_integer(number.abs)}" if number < 0
26
-
27
- convert(number)
24
+ convert(number.to_i, 'eins')
28
25
  end
29
26
 
30
- def convert(number)
27
+ def convert(number, one='ein')
31
28
  case number
29
+ when 1 then one
32
30
  when 0..19 then NINETEEN[number]
33
31
  when 20..99 then twenty_to_99(number)
34
- when 100..999 then quantify_factor(100, 'hundert', number)
35
- when 1000..999_999 then quantify_factor(1000, 'tausend', number)
32
+ when 100..999 then quantify_by_factor(100, 'hundert', number)
33
+ when 1000..999_999 then quantify_by_factor(1000, 'tausend', number)
36
34
  else bignums(number)
37
35
  end
38
36
  end
@@ -47,7 +45,7 @@ class Ziffern
47
45
  end
48
46
  end
49
47
 
50
- def quantify_factor(factor, name, number)
48
+ def quantify_by_factor(factor, name, number)
51
49
  amount, remainder = number.divmod(factor)
52
50
 
53
51
  result = convert(amount) + name
@@ -75,12 +73,8 @@ class Ziffern
75
73
  end
76
74
 
77
75
  def quantify_big_name(amount, big_name)
78
- if amount == 1
79
- quantity = 'eine'
80
- else
81
- quantity = convert(amount)
82
- big_name = big_name.sub(/(e?)$/, 'en')
83
- end
76
+ quantity = convert(amount, 'eine')
77
+ big_name = big_name.sub(/(e?)$/, 'en') unless amount == 1
84
78
 
85
79
  "#{quantity} #{big_name}"
86
80
  end
@@ -111,5 +105,4 @@ class Ziffern
111
105
  def convert_digits(number)
112
106
  number.to_s.chars.map { |digit| convert_integer(digit) }.join(' ')
113
107
  end
114
-
115
108
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ziffern
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jimmy Börjesson