Class: PiiScrubber::Scrubber

Inherits:
Object
  • Object
show all
Defined in:
lib/pii_scrubber/scrubber.rb

Constant Summary collapse

BUILT_IN_DETECTORS =
{
  email: Detectors::Email,
  phone: Detectors::Phone,
  ssn: Detectors::Ssn,
  credit_card: Detectors::CreditCard,
  api_key: Detectors::ApiKey,
  ip_address: Detectors::IpAddress,
  iban: Detectors::Iban,
  uk_nino: Detectors::UkNino,
  canadian_sin: Detectors::CanadianSin,
  indian_pan: Detectors::IndianPan,
  indian_aadhaar: Detectors::IndianAadhaar,
  database_url: Detectors::DatabaseUrl
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = PiiScrubber.configuration) ⇒ Scrubber

Returns a new instance of Scrubber.



24
25
26
27
# File 'lib/pii_scrubber/scrubber.rb', line 24

def initialize(config = PiiScrubber.configuration)
  @config = config
  @active_detectors = build_detectors
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



22
23
24
# File 'lib/pii_scrubber/scrubber.rb', line 22

def config
  @config
end

Instance Method Details

#scrub(data, **override_options) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/pii_scrubber/scrubber.rb', line 29

def scrub(data, **override_options)
  strategy = override_options[:strategy] || config.strategy
  mask_char = override_options[:mask_char] || config.mask_char
  hmac_salt = override_options[:hmac_salt] || config.hmac_salt
  ignored_keys = (override_options[:ignored_keys] || config.ignored_keys).map(&:to_s)

  case data
  when String
    scrub_string(data, strategy: strategy, mask_char: mask_char, hmac_salt: hmac_salt)
  when Hash
    scrub_hash(data, strategy: strategy, mask_char: mask_char, hmac_salt: hmac_salt, ignored_keys: ignored_keys)
  when Array
    data.map { |item| scrub(item, **override_options) }
  else
    data
  end
end