Class: PiiScrubber::Detectors::Email

Inherits:
Base
  • Object
show all
Defined in:
lib/pii_scrubber/detectors/email.rb

Constant Summary collapse

EMAIL_REGEX =
/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/

Instance Attribute Summary

Attributes inherited from Base

#name

Instance Method Summary collapse

Methods inherited from Base

#valid?

Constructor Details

#initializeEmail

Returns a new instance of Email.



10
11
12
# File 'lib/pii_scrubber/detectors/email.rb', line 10

def initialize
  super(name: :email)
end

Instance Method Details

#patternsObject



14
15
16
# File 'lib/pii_scrubber/detectors/email.rb', line 14

def patterns
  [EMAIL_REGEX]
end

#replace(match, strategy: :placeholder, mask_char: "*", hmac_salt: nil) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/pii_scrubber/detectors/email.rb', line 18

def replace(match, strategy: :placeholder, mask_char: "*", hmac_salt: nil)
  return super unless strategy == :mask

  user, domain = match.split("@", 2)
  return super unless user && domain

  masked_user = mask_value(user, mask_char: mask_char)
  domain_parts = domain.split(".")
  masked_domain_name = mask_value(domain_parts[0], mask_char: mask_char)
  tld = domain_parts[1..].join(".")

  "#{masked_user}@#{masked_domain_name}.#{tld}"
end