Skip to content

Instantly share code, notes, and snippets.

@joelanders
Created October 10, 2012 02:23
Show Gist options
  • Save joelanders/3862788 to your computer and use it in GitHub Desktop.
Save joelanders/3862788 to your computer and use it in GitHub Desktop.
# Determine whether a string contains a Social Security number.
def has_ssn?(string)
string =~ /\d{3}-\d{2}-\d{4}/
end
# Return the Social Security number from a string.
def grab_ssn(string)
string.match(/(\d{3}-\d{2}-\d{4})/) {|m| m[0]}
end
# Return all of the Social Security numbers from a string.
def grab_all_ssns(string)
string.scan(/(\d{3}-\d{2}-\d{4})/)
end
# Obfuscate all of the Social Security numbers in a string. Example: XXX-XX-4430.
def hide_all_ssns(string)
string.gsub(/\d{3}-\d{2}-(\d{4})/, 'XXX-XX-\1')
end
# Ensure all of the Social Security numbers use dashes for delimiters.
# Example: 480.01.4430 and 480014430 would both be 480-01-4430.
def format_ssns(string)
string.gsub(/(\d{3})\D*(\d{2})\D*(\d{4})/, '\1-\2-\3')
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment