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



182
183
184
185
186
# File 'lib/ingenico/connect/sdk/logging/logging_util.rb', line 182

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

Class Method Details

.builderObject



223
224
225
# File 'lib/ingenico/connect/sdk/logging/logging_util.rb', line 223

def self.builder
  Builder.new
end

Instance Method Details

#obfuscate(body) ⇒ Object



210
211
212
213
214
215
216
217
218
219
220
221
# File 'lib/ingenico/connect/sdk/logging/logging_util.rb', line 210

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

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