ziffern 1.0.2 → 1.0.3

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