ziffern 1.0.2 → 1.0.3

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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/ziffern.rb +19 -17
  3. data/ziffern_spec.rb +1 -0
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 25bd87f236fb8e209bcb94ff511df1c216fc1638
4
- data.tar.gz: e8de6118bd969f5e0d361f78c6da694cd165ed6c
3
+ metadata.gz: 70eaaad3cbb7f3b3f9a771ad594808d1b3355b99
4
+ data.tar.gz: 1258f0ad107131e9115f7adf83432468e14c11da
5
5
  SHA512:
6
- metadata.gz: 9c153a5aca865b0fbd8709803ea350d2d4f7e5b1f3a707b0bdb2c2f79290bbcc1116c04a022f390d159958f43ff54fa118b7f371ffb93bb20b6271edb14de39d
7
- data.tar.gz: ab6711f475ee2363617f5c7cfbbd0f58a673a0ef064e5c94884d683ff035d70ab9fc0c7ddced8bd838ea3bedb517dcc93dfebaa4cde7ec8a989f4faaf9d1ef3f
6
+ metadata.gz: 4a0c95ca8673b14b036fdc9ce3bc8fbd648e33bc26930e3a27f3f99f0ef174db185cd4e6e6fda7e678c178c8b1e6a4f0857c403a6156fdc93e26c0c3d8ca978d
7
+ data.tar.gz: a7c6f2f32f0703acbdb4ab0208af68a3ef9da098facc9cb5a555d53a0ee2be313df7ac10409082e79342c1ac745cfd64fb4c4f24d80dc0f31a8f42ac18b6a5b5
data/ziffern.rb CHANGED
@@ -2,7 +2,7 @@ class Ziffern
2
2
 
3
3
  # http://de.wikipedia.org/wiki/Zahlennamen
4
4
 
5
- NINETEEN = %w{ null ein zwei drei vier fünf sechs sieben acht neun zehn elf zwölf
5
+ NINETEEN = %w{ null eins zwei drei vier fünf sechs sieben acht neun zehn elf zwölf
6
6
  dreizehn vierzehn fünfzehn sechzehn siebzehn achtzehn neunzehn }
7
7
 
8
8
  TENS = %w{ zwanzig dreißig vierzig fünfzig sechzig siebzig achtzig neunzig }.unshift(nil, nil)
@@ -14,20 +14,21 @@ class Ziffern
14
14
 
15
15
 
16
16
  def to_german(number)
17
- convert_integer_with_sign(number) + convert_decimals(number)
17
+ convert_sign(number) + convert_integer(number) + convert_decimals(number)
18
18
  end
19
19
 
20
20
  private
21
21
 
22
- def convert_integer_with_sign(number)
23
- number = number.to_i
24
- text = convert_integer(number.abs)
25
- text = "minus #{text}" if number < 0
26
- text
22
+ def convert_sign(number)
23
+ if number.to_f < 0
24
+ "minus "
25
+ else
26
+ ""
27
+ end
27
28
  end
28
29
 
29
30
  def convert_integer(number)
30
- convert(number.to_i, 'eins')
31
+ convert(number.to_i.abs, 'eins')
31
32
  end
32
33
 
33
34
  def convert(number, one='ein')
@@ -47,25 +48,26 @@ class Ziffern
47
48
  if remainder.zero?
48
49
  TENS[ten]
49
50
  else
50
- "#{NINETEEN[remainder]}und#{TENS[ten]}"
51
+ "#{convert(remainder)}und#{TENS[ten]}"
51
52
  end
52
53
  end
53
54
 
54
- def quantify_by_factor(factor, name, number)
55
+ def quantify_by_factor(factor, quantifier, number)
55
56
  amount, remainder = number.divmod(factor)
56
57
 
57
- result = convert(amount) + name
58
- result.tap do |result|
59
- result << convert(remainder) unless remainder.zero?
60
- end
58
+ text = convert(amount) + quantifier
59
+ text << convert(remainder) unless remainder.zero?
60
+
61
+ text
61
62
  end
62
63
 
63
64
  def bignums(number)
64
65
  number_of_millions, remainder = number.divmod(1000_000)
65
66
 
66
- convert_millions(number_of_millions).tap do |result|
67
- result << " " << convert_integer(remainder) unless remainder.zero?
68
- end
67
+ text = convert_millions(number_of_millions)
68
+ text << " " << convert_integer(remainder) unless remainder.zero?
69
+
70
+ text
69
71
  end
70
72
 
71
73
  def convert_millions(number_of_millions)
data/ziffern_spec.rb CHANGED
@@ -81,6 +81,7 @@ describe Ziffern do
81
81
  -5.6 => "minus fünf Komma sechs",
82
82
  -567.89 => "minus fünfhundertsiebenundsechzig Komma acht neun",
83
83
  5.0 => "fünf Komma null",
84
+ -0.001 => "minus null Komma null null eins"
84
85
  })
85
86
  end
86
87
 
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.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jimmy Börjesson