Skip to content

Instantly share code, notes, and snippets.

@abrongersma
Created April 4, 2013 00:35
Show Gist options
  • Save abrongersma/5306735 to your computer and use it in GitHub Desktop.
Save abrongersma/5306735 to your computer and use it in GitHub Desktop.
module InWords
def in_words
ones = { 0 => "zero", 1 => "one", 2 => "two", 3 => "three", 4 => "four", 5 => "five",
6 => "six", 7 => "seven", 8 => "eight", 9 => "nine"}
teens = { 11 => "eleven", 12 => "twelve", 13 => "thirteen", 14 => "fourteen",
15 => "fifteen", 16 => "sixteen", 17 => "seventeen", 18 => "eighteen",
19 => "nineteen"}
tens = { 0 => "", 1 => "ten", 2 => "twenty", 3 => "thirty", 4 => "forty",
5 => "fifty", 6 => "sixty", 7 => "seventy", 8 => "eighty", 9 => "ninety"}
get_tens = self / 10
get_ones = self % 10
if self < 10
ones[self]
elsif self < 20
teens[self]
elsif self < 99
tens[get_tens] + " " + ones[get_ones]
elsif self < 1000
get_huns = self / 100
get_left = self % 100
get_tens = get_left / 10
get_ones = get_left % 10
if get_left < 10
ones[get_huns] + " hundred " + ones[get_left]
elsif (11..19).include?(get_left)
ones[get_huns] + " hundred " + teens[get_left]
else
ones[get_huns] + " hundred " + tens[get_tens] + " " + ones[get_ones]
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