ziffern 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
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