Class: Figures::German
- Inherits:
-
Object
- Object
- Figures::German
- Defined in:
- lib/figures/german.rb
Constant Summary collapse
- UNITS =
%w{ eins zwei drei vier fünf sechs sieben acht neun }.freeze
- PREFIXES =
{ units: %w{ tausend mi bi tri quadri quinti sexti septi okti noni }, union_units: %w{ un duo tre quattuor quinqua se septe okto nove }, union_tens: %w{ dezi viginti triginta quadraginta quinquaginta sexaginta septuaginta oktoginta nonaginta }, union_hundreds: %w{ zenti duzenti trezenti quadringenti quingenti seszenti septingenti oktingenti nongenti } }.freeze
- EXCEPTIONS =
{ /^eins(hundert|tausend)/ => 'ein\1', /^eins\s/ => 'eine ', /einsund/ => 'einund', 'einszehn' => 'elf', 'zweizehn' => 'zwölf', 'sechszehn' => 'sechzehn', 'siebenzehn' => 'siebzehn', 'zweizig' => 'zwanzig', 'dreizig' => 'dreißig', 'sechszig' => 'sechzig', 'siebenzig' => 'siebzig' }.freeze
Instance Attribute Summary collapse
-
#number ⇒ Object
readonly
Returns the value of attribute number.
Instance Method Summary collapse
-
#initialize(number) ⇒ German
constructor
A new instance of German.
- #parse ⇒ Object
Constructor Details
#initialize(number) ⇒ German
28 29 30 |
# File 'lib/figures/german.rb', line 28 def initialize(number) @number = number.to_i end |
Instance Attribute Details
#number ⇒ Object (readonly)
Returns the value of attribute number.
26 27 28 |
# File 'lib/figures/german.rb', line 26 def number @number end |
Instance Method Details
#parse ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/figures/german.rb', line 32 def parse return 'null' if number == 0 triples = split_into_reverse_triples(number) word = triples.each_with_index.reduce('') do |result, (triple, index)| triple_word = triple_to_word(triple, index) result.prepend(triple_word) end.strip number < 0 ? "minus #{word}" : word end |