Class: Ingenico::Connect::SDK::Logging::PropertyObfuscator

Inherits:
Obfuscator
  • Object
show all
Defined in:
lib/ingenico/connect/sdk/logging/logging_util.rb

Overview

Class that obfuscates properties in the JSON body of a message

Defined Under Namespace

Classes: Builder

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Obfuscator

#obfuscate_value

Constructor Details

#initialize(obfuscators) ⇒ PropertyObfuscator

Returns a new instance of PropertyObfuscator.



187
188
189
190
191
# File 'lib/ingenico/connect/sdk/logging/logging_util.rb', line 187

def initialize(obfuscators)
  # case sensitive
  super(obfuscators, false)
  @property_pattern = build_property_pattern(obfuscators.keys)
end

Class Method Details

.builderObject



228
229
230
# File 'lib/ingenico/connect/sdk/logging/logging_util.rb', line 228

def self.builder
  Builder.new
end

Instance Method Details

#obfuscate(body) ⇒ Object



215
216
217
218
219
220
221
222
223
224
225
226
# File 'lib/ingenico/connect/sdk/logging/logging_util.rb', line 215

def obfuscate(body)
  return nil if body.nil?
  return '' if body.empty?

  body.gsub(@property_pattern) do
    m = Regexp.last_match
    property_name = m[2]
    value = m[4] || m[5]
    # copy value 'cause it's part of m[0]
    m[0].sub(value, obfuscate_value(property_name, value.dup))
  end
end