class Converter::EnglishNumber
Public Class Methods
new(value)
click to toggle source
# File lib/num_word_converter.rb, line 10 def initialize(value) @value = value end
Public Instance Methods
get_tens(value)
click to toggle source
# File lib/num_word_converter.rb, line 23 def get_tens(value) result = "" remainder = value % 10 tens = (value - remainder) / 10 result += @@tens[tens] result += "-#{@@specials[remainder]}" unless remainder == 0 return result end
in_english()
click to toggle source
# File lib/num_word_converter.rb, line 59 def in_english main(@value) end
main(value)
click to toggle source
# File lib/num_word_converter.rb, line 32 def main(value) prefix = "" # remove decimals value > 0 ? value = value.floor : value = value.ceil if value < 0 prefix = "negative " value = value.abs end # return numbers from 1-19 with simple lookup return prefix + @@specials[value] if @@specials[value] if value >= 1000000000 return prefix + make_words(value, 1000000000, "billion") elsif value >= 1000000 return prefix + make_words(value, 1000000, "million") elsif value >= 1000 return prefix + make_words(value, 1000, "thousand") elsif value >= 100 return prefix + make_words(value, 100, "hundred") else return prefix + get_tens(value) end end
make_words(value, divider, title)
click to toggle source
# File lib/num_word_converter.rb, line 14 def make_words(value, divider, title) result = "" remainder = value % divider num = (value - remainder) / divider result += "#{main(num)} " + title result += " #{main(remainder)}" unless remainder == 0 return result end