module SimpleScrubber

Constants

VERSION

Public Class Methods

scrub(text, types=[]) click to toggle source
# File lib/simple_scrubber.rb, line 4
def self.scrub(text, types=[])
  if types.include? :email
    email_re = /\b([A-Z0-9._%+-]+)@([A-Z0-9.-]+\.[A-Z]{2,4})\b/i
    text.gsub!(email_re, 'xxx@\2')
  end

  if types.include? :phone
    phone_re = /\b(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?\b/
    match = text.match phone_re
    unless match.nil?
      area_code = match[1] || match[2]
      text.gsub!(phone_re, "#{area_code}-xxx-xxxx")
    else
      text
    end
  end

  text
end