Module: Kabal::EnglishRules::FractionalNumbers
- Included in:
- Kabal::English
- Defined in:
- lib/kabal/languages/english/fractional_numbers.rb
Instance Method Summary collapse
- #fractional_number_name(number) ⇒ Object
- #fractional_part_name(number) ⇒ Object
- #fractional_part_order(number) ⇒ Object
- #fractional_part_string(number) ⇒ Object
- #whole_part_name(number) ⇒ Object
Instance Method Details
#fractional_number_name(number) ⇒ Object
4 5 6 7 8 9 10 |
# File 'lib/kabal/languages/english/fractional_numbers.rb', line 4 def fractional_number_name(number) if whole_part_name(number) != "" whole_part_name(number) + " " + dot + " " + fractional_part_name(number) else dot + " " + fractional_part_name(number) end end |
#fractional_part_name(number) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/kabal/languages/english/fractional_numbers.rb', line 17 def fractional_part_name(number) name = "" count_string = fractional_part_string(number).to_s.split('.')[1] count = count_string.to_i if count_string.size != count.to_s.size (count_string.size - count.to_s.size).times do name += names["single"][0] + " " end name + natural_number_name(count) else natural_number_name(count) end end |
#fractional_part_order(number) ⇒ Object
35 36 37 38 39 40 41 42 43 |
# File 'lib/kabal/languages/english/fractional_numbers.rb', line 35 def fractional_part_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_part_string(number) ⇒ Object
31 32 33 |
# File 'lib/kabal/languages/english/fractional_numbers.rb', line 31 def fractional_part_string(number) "%.#{fractional_part_order(number)}f" % number end |
#whole_part_name(number) ⇒ Object
12 13 14 15 |
# File 'lib/kabal/languages/english/fractional_numbers.rb', line 12 def whole_part_name(number) count = number.floor count != 0 ? natural_number_name(count) : "" end |