class Honeybadger::Util::SQL

Constants

DQuotedData
DoubleQuoters
EmptyReplacement
EscapedQuotes
Newline
NumericData
Replacement
SQuotedData

Public Class Methods

force_utf_8(string) click to toggle source
# File lib/honeybadger/util/sql.rb, line 24
def self.force_utf_8(string)
  string.encode(
    Encoding.find('UTF-8'),
    invalid: :replace, 
    undef: :replace, 
    replace: ''
  )
end
obfuscate(sql, adapter) click to toggle source
# File lib/honeybadger/util/sql.rb, line 13
def self.obfuscate(sql, adapter)
  force_utf_8(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