ziffern 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ziffern.rb +9 -16
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3decb1b23ebb05d69c96e55a3228ff68831450ea
|
4
|
+
data.tar.gz: cc753ab15904d7dbb3de5730f4c7d1870fa0ae69
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
35
|
-
when 1000..999_999 then
|
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
|
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
|
-
|
79
|
-
|
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
|