module Kabal::RussianRules::FractionalNumbers

Public Instance Methods

fractional_number_name(number) click to toggle source
# File lib/kabal/languages/russian/fractional_numbers.rb, line 4
def fractional_number_name(number)
  join_with_spaces whole_part_name(number), fractional_part_name(number)
end
fractional_order_word(number) click to toggle source
# File lib/kabal/languages/russian/fractional_numbers.rb, line 27
def fractional_order_word(number)
  names[:fractional_ten_powers][fractional_part_order(number) - (fractional_part_order(number) % 3)]
end
fractional_part_name(number) click to toggle source
# File lib/kabal/languages/russian/fractional_numbers.rb, line 8
def fractional_part_name(number)
  fractional_part = (number % 1).round(fractional_part_order(number))
  fractional_order = ((fractional_part) * (10**fractional_part_order(number))).to_s.split('.')[0].to_i
  join_with_spaces feminine_natural_number_name(fractional_order, true), Declinations.name_with_declination(fractional_ten_powers_name(number), fractional_part)
end
fractional_pre_word(number) click to toggle source
# File lib/kabal/languages/russian/fractional_numbers.rb, line 31
def fractional_pre_word(number)
  names[:fractional_pre_words][fractional_part_order(number) % 3]
end
fractional_ten_powers_name(number) click to toggle source
# File lib/kabal/languages/russian/fractional_numbers.rb, line 19
def fractional_ten_powers_name(number)
  if need_pre_word? number
    fractional_pre_word(number) + fractional_order_word(number)
  else
    names[:fractional_ten_powers][fractional_part_order(number)]
  end
end
need_pre_word?(number) click to toggle source
# File lib/kabal/languages/russian/fractional_numbers.rb, line 35
def need_pre_word?(number)
  fractional_part_order(number) > 3 && fractional_part_order(number) % 3 != 0
end
whole_part_name(number) click to toggle source
# File lib/kabal/languages/russian/fractional_numbers.rb, line 14
def whole_part_name(number)
  count = number.floor
  join_with_spaces feminine_natural_number_name(count), Declinations.name_with_declination(whole, count)
end