Module: CommandTower::Audit::Masking
- Defined in:
- lib/command_tower/audit/masking.rb
Constant Summary collapse
- REDACTED =
"********"
Class Method Summary collapse
- .email(string) ⇒ Object
- .phone(string) ⇒ Object
- .scalar?(raw) ⇒ Boolean
- .value(field:, raw:) ⇒ Object
Class Method Details
.email(string) ⇒ Object
29 30 31 32 33 34 |
# File 'lib/command_tower/audit/masking.rb', line 29 def email(string) local, domain = string.split("@", 2) return REDACTED if local.blank? || domain.blank? "#{local[0]}***@#{domain}" end |
.phone(string) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/command_tower/audit/masking.rb', line 22 def phone(string) digits = string.gsub(/\D/, "") return REDACTED if digits.length < 4 "#{'*' * 7}#{digits[-4, 4]}" end |
.scalar?(raw) ⇒ Boolean
36 37 38 |
# File 'lib/command_tower/audit/masking.rb', line 36 def scalar?(raw) raw.is_a?(String) || raw.is_a?(Numeric) end |
.value(field:, raw:) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/command_tower/audit/masking.rb', line 10 def value(field:, raw:) return if raw.nil? return REDACTED unless scalar?(raw) string = raw.to_s case field.to_s when "phone" then phone(string) when "email" then email(string) else REDACTED end end |