Module: Kabal::RussianRules::FractionalNumbers

Included in:
Kabal::Russian
Defined in:
lib/kabal/languages/russian/fractional_numbers.rb

Instance Method Summary collapse

Instance Method Details

#fractional_number_name(number) ⇒ Object



4
5
6
# 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) ⇒ Object



27
28
29
# 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) ⇒ Object



8
9
10
11
12
# 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) ⇒ Object



31
32
33
# 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) ⇒ Object



19
20
21
22
23
24
25
# 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) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
# 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) ⇒ Object



14
15
16
17
# 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