class Atatus::SqlSummarizer

@api private

Constants

DEFAULT
FORMAT
REGEXES
TABLE_REGEX

Public Class Methods

cache() click to toggle source
# File lib/atatus/sql_summarizer.rb, line 39
def self.cache
  @cache ||= Util::LruCache.new
end

Public Instance Methods

summarize(sql) click to toggle source
# File lib/atatus/sql_summarizer.rb, line 43
def summarize(sql)
  sql = sql.encode('utf-8', invalid: :replace, undef: :replace)
  self.class.cache[sql] ||=
    REGEXES.find do |regex, sig|
      if (match = sql[0...1000].match(regex))
        break format(FORMAT, sig, match[1] && match[1].gsub(/["']/, ''))
      end
    end || DEFAULT
end