Module: SensitiveDataFilter::Mask

Defined in:
lib/sensitive_data_filter/mask.rb

Class Method Summary collapse

Class Method Details

.mask(value) ⇒ Object



4
5
6
7
8
# File 'lib/sensitive_data_filter/mask.rb', line 4

module_function def mask(value)
  return mask_array(value) if value.is_a? Array
  return mask_hash(value) if value.is_a? Hash
  SensitiveDataFilter.enabled_types.inject(value) { |acc, elem| elem.mask acc }
end

.mask_array(array) ⇒ Object



10
11
12
# File 'lib/sensitive_data_filter/mask.rb', line 10

module_function def mask_array(array)
  array.map { |element| mask(element) }
end

.mask_hash(hash) ⇒ Object



14
15
16
# File 'lib/sensitive_data_filter/mask.rb', line 14

module_function def mask_hash(hash)
  hash.map { |key, value| mask_key_value(key, value) }.to_h
end

.mask_key_value(key, value) ⇒ Object



18
19
20
21
22
# File 'lib/sensitive_data_filter/mask.rb', line 18

module_function def mask_key_value(key, value)
  masked_key = mask(key)
  return [masked_key, value] if SensitiveDataFilter.whitelisted_key? key
  [masked_key, mask(value)]
end