Class: GermanNumbers::Stringifier

Inherits:
Object
  • Object
show all
Defined in:
lib/german_numbers/stringifier.rb

Constant Summary collapse

SMALL_KEYWORDS =
%w(hundert tausend).freeze
BIG_KEYWORDS =
%w(Million Milliarde).freeze

Instance Method Summary collapse

Instance Method Details

#words(number) ⇒ Object

Raises:

  • (ArgumentError)


8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/german_numbers/stringifier.rb', line 8

def words(number)
  raise ArgumentError if number > 999_999_999_999 || number.negative?
  return postprocess(DIGITS[number]) unless DIGITS[number].nil?

  number = number.to_s.rjust(12, '0')

  billions, millions, thousands, number = number.to_s.reverse.scan(/.{1,3}/).map do |part|
    part.reverse.to_i
  end.reverse

  postprocess(process(billions, millions, thousands, number))
end