Skip to content

Instantly share code, notes, and snippets.

@Pcushing
Created June 12, 2012 22:53
Show Gist options
  • Save Pcushing/2920634 to your computer and use it in GitHub Desktop.
Save Pcushing/2920634 to your computer and use it in GitHub Desktop.
Jacquie & Patrick tackle Numbers in Words
module InWords
def in_words
num_digits = self.to_s.length
num_string = self.to_s
under_ten = { 0 => "zero", 1 => "one", 2 => "two", 3 => "three",
4 => "four", 5 => "five", 6 => "six",
7 => "seven", 8 => "eight", 9 => "nine" }
teens = { 10 => "ten", 11 => "eleven", 12 => "twelve", 13 => "thirteen",
14 => "fourteen", 15 => "fifteen", 16 => "sixteen",
17 => "seventeen", 18 => "eighteen", 19 => "nineteen" }
tens = { 2 => "twenty", 3 => "thirty", 4 => "forty", 5 => "fifty",
6 => "sixty", 7 => "seventy", 8 => "eighty", 9 => "ninety" }
hundreds = { 1 => "one hundred", 2 => "two hundred", 3 => "three hundred", 4 => "four hundred",
5 => "five hundred", 6 => "six hundred", 7 => "seven hundred", 8 => "eight hundred",
9 => "nine hundred" }
if num_digits == 1
under_ten[self]
elsif num_digits == 2
if self >= 10 && self < 20
teens[self]
else
tens[num_string[0].to_i] + " " + under_ten[num_string[1].to_i]
end
elsif num_digits == 3
if num_string[1] == "1"
hundreds[num_string[0].to_i] + " " + teens[num_string[1,2].to_i]
elsif num_string[1] == "0"
hundreds[num_string[0].to_i] + " " + under_ten[num_string[2].to_i]
else
hundreds[num_string[0].to_i] + " " + tens[num_string[1].to_i] + " " + under_ten[num_string[2].to_i]
end
end
end
end
class Fixnum
include InWords
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment