module Kabal::DeutschRules::NaturalNumbers
Public Instance Methods
count_name(number)
click to toggle source
# File lib/kabal/languages/deutsch/natural_numbers.rb, line 45 def count_name(number) three_words count(number) end
create_number_name(number)
click to toggle source
# File lib/kabal/languages/deutsch/natural_numbers.rb, line 37 def create_number_name(number) if @number_name.nil? @number_name = words_to_add(number) elsif count(number) != 0 @number_name += words_to_add(number) end end
less_thousands(number)
click to toggle source
# File lib/kabal/languages/deutsch/natural_numbers.rb, line 49 def less_thousands(number) return if number == 0 @number_name += three_words(number % 1000) unless number == 0 end
millions_or_greater?(number)
click to toggle source
# File lib/kabal/languages/deutsch/natural_numbers.rb, line 54 def millions_or_greater?(number) number_order(number) > 3 end
number_with_space(number)
click to toggle source
# File lib/kabal/languages/deutsch/natural_numbers.rb, line 66 def number_with_space(number) @number_name = join_with_spaces(count_name(number), Declinations.name_with_declination(names[:ten_powers][number_order(number)], count(number))) + space end
number_without_space(number)
click to toggle source
# File lib/kabal/languages/deutsch/natural_numbers.rb, line 70 def number_without_space(number) @number_name = count_name(number) + Declinations.name_with_declination(names[:ten_powers][number_order(number)], count(number)) end
single(number)
click to toggle source
# File lib/kabal/languages/deutsch/natural_numbers.rb, line 4 def single(number) if @ein @ein = false names[:single][number].chop else names[:single][number] end end
ten_powers(number)
click to toggle source
# File lib/kabal/languages/deutsch/natural_numbers.rb, line 30 def ten_powers(number) less_thousands number if number_is_thousands? number return @number_name if number_is_thousands? number create_number_name number ten_powers number % (10**number_order(number)) end
three_words(number)
click to toggle source
# File lib/kabal/languages/deutsch/natural_numbers.rb, line 21 def three_words(number) return two_words number if number <= 99 @ein = (number / 100 == 1) number_name = single(number / 100) + names[:ten_powers][2] number_name += two_words(number % 100) if (number % 100 >= 10) number_name += single(number % 100) if number % 100 < 10 && number % 100 != 0 number_name end
two_words(number)
click to toggle source
# File lib/kabal/languages/deutsch/natural_numbers.rb, line 13 def two_words(number) return single number if number <= 19 number_name = names[:two_words][number / 10] @ein = (number % 10 == 1) number_name = single(number % 10) + names[:and] + number_name if (number % 10 != 0) number_name end
words_to_add(number)
click to toggle source
# File lib/kabal/languages/deutsch/natural_numbers.rb, line 58 def words_to_add(number) if millions_or_greater?(number) number_with_space number else number_without_space number end end