Skip to content

Instantly share code, notes, and snippets.

@chandrewz
Created February 5, 2015 00:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chandrewz/0ad8b5983bc4209a9817 to your computer and use it in GitHub Desktop.
Save chandrewz/0ad8b5983bc4209a9817 to your computer and use it in GitHub Desktop.
Phone
class Phone
def initialize(number)
@number = number
end
def number
# strip all chars except numbers
number = @number.gsub(/[^0-9]/i, '')
# If the phone number is less than 10 digits assume that it is bad number
if number.length < 10
return nil
end
# If the phone number is 10 digits assume that it is good
if number.length == 10
return number
end
# If the phone number is more than 11 digits assume that it is a bad number
if number.length > 11
return nil
end
# If the phone number is 11 digits and the first number is 1, trim the 1 and use the first 10 digits
if number.length == 11 && number[0] == '1'
return number[1..10]
end
# If the phone number is 11 digits and the first number is not 1, then it is a bad number
if number.length == 11 && number[0] != '1'
return nil
end
return number
end
# returns the first 3 digits of a number
def area_code
number = number()
return number[0..2]
end
# pretty print a misc. phone number
def pretty_print
number = number()
return '(' + number[0..2] + ') ' + number[3..5] + '-' + number[6..9]
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment