Sha256: e2f2c6ea8d1f4b799a32fbc4cc0f4f8ad0dcc47a38385b9aaf8d2884df7f9825

Contents?: true

Size: 753 Bytes

Versions: 12

Compression:

Stored size: 753 Bytes

Contents

module Honeybadger
  module Util
    class SQL
      EscapedQuotes = /(\\"|\\')/.freeze
      SQuotedData = /'(?:[^']|'')*'/.freeze
      DQuotedData = /"(?:[^"]|"")*"/.freeze
      NumericData = /\b\d+\b/.freeze
      Newline = /\n/.freeze
      Replacement = "?".freeze
      EmptyReplacement = "".freeze
      DoubleQuoters = /(postgres|sqlite|postgis)/.freeze

      def self.obfuscate(sql, adapter)
        sql.dup.tap do |s|
          s.gsub!(EscapedQuotes, EmptyReplacement)
          s.gsub!(SQuotedData, Replacement)
          s.gsub!(DQuotedData, Replacement) if adapter =~ DoubleQuoters
          s.gsub!(NumericData, Replacement)
          s.gsub!(Newline, EmptyReplacement)
          s.squeeze!(' ')
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
honeybadger-4.7.0 lib/honeybadger/util/sql.rb
honeybadger-4.6.0 lib/honeybadger/util/sql.rb
honeybadger-4.5.6 lib/honeybadger/util/sql.rb
honeybadger-4.5.5 lib/honeybadger/util/sql.rb
honeybadger-4.5.4 lib/honeybadger/util/sql.rb
honeybadger-4.5.3 lib/honeybadger/util/sql.rb
honeybadger-4.5.2 lib/honeybadger/util/sql.rb
honeybadger-4.5.1 lib/honeybadger/util/sql.rb
honeybadger-4.5.0 lib/honeybadger/util/sql.rb
honeybadger-4.4.2 lib/honeybadger/util/sql.rb
honeybadger-4.4.1 lib/honeybadger/util/sql.rb
honeybadger-4.4.0 lib/honeybadger/util/sql.rb