class Raygun::Services::ApplyWhitelistFilterToPayload

Public Instance Methods

call(whitelist, payload) click to toggle source
# File lib/raygun/services/apply_whitelist_filter_to_payload.rb, line 4
def call(whitelist, payload)
  filter_hash(whitelist, payload)
end

Private Instance Methods

filter_hash(whitelist, hash) click to toggle source
# File lib/raygun/services/apply_whitelist_filter_to_payload.rb, line 10
def filter_hash(whitelist, hash)
  # dup the input so each level of the hash is dup'd
  # not just the top as dup isn't deep
  hash = hash.dup

  hash.each do |k, v|
    unless whitelist && (whitelist[k] || whitelist[k.to_sym])
      hash[k] = '[FILTERED]'
    end

    if v.is_a?(Hash) && whitelist[k].is_a?(Hash)
      hash[k] = filter_hash(whitelist[k], v)
    end
  end
end