Module: Kabal::RussianRules::FractionalNumbers
- Included in:
- Kabal::Russian
- Defined in:
- lib/kabal/languages/russian/fractional_numbers.rb
Instance Method Summary collapse
- #fractional_number_name(number) ⇒ Object
- #fractional_number_order(number) ⇒ Object
- #fractional_order_word(number) ⇒ Object
- #fractional_part_name(number) ⇒ Object
- #fractional_pre_word(number) ⇒ Object
- #fractional_ten_powers_name(number) ⇒ Object
- #need_pre_word?(number) ⇒ Boolean
- #whole_part_name(number) ⇒ Object
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) whole_part_name(number) + " " + fractional_part_name(number) end |
#fractional_number_order(number) ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'lib/kabal/languages/russian/fractional_numbers.rb', line 40 def fractional_number_order(number) #FIXME find better way with whole 0 numbers number_string = number.to_s if number_string.include? "-" number_string.split('-')[1].to_i else number_string.split('.')[1].length end end |
#fractional_order_word(number) ⇒ Object
28 29 30 |
# File 'lib/kabal/languages/russian/fractional_numbers.rb', line 28 def fractional_order_word(number) names["fractional_ten_powers"][fractional_number_order(number) - (fractional_number_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_number_order(number)) fractional_order = ((fractional_part) * (10 ** fractional_number_order(number))).to_s.split('.')[0].to_i feminine_natural_number_name(fractional_order, true) + " " + Declinations.name_with_declination(fractional_ten_powers_name(number), fractional_part) end |
#fractional_pre_word(number) ⇒ Object
32 33 34 |
# File 'lib/kabal/languages/russian/fractional_numbers.rb', line 32 def fractional_pre_word(number) names["fractional_pre_words"][fractional_number_order(number) % 3] end |
#fractional_ten_powers_name(number) ⇒ Object
19 20 21 22 23 24 25 26 |
# File 'lib/kabal/languages/russian/fractional_numbers.rb', line 19 def fractional_ten_powers_name(number) ten_powers_name = "" if need_pre_word? number ten_powers_name = fractional_pre_word(number) + fractional_order_word(number) else ten_powers_name = names["fractional_ten_powers"][fractional_number_order(number)] end end |
#need_pre_word?(number) ⇒ Boolean
36 37 38 |
# File 'lib/kabal/languages/russian/fractional_numbers.rb', line 36 def need_pre_word?(number) fractional_number_order(number) > 3 and fractional_number_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 feminine_natural_number_name(count) + " " + Declinations.name_with_declination(whole, count) end |