Sha256: 6cc1d9fea905eed7431afe87a7b9106fae404e5bf5aebb45e35ba0f48ab3f768
Contents?: true
Size: 724 Bytes
Versions: 5
Compression:
Stored size: 724 Bytes
Contents
module QueryDiet class Logger class << self attr_accessor :count, :time, :bad_count, :bad_time def reset self.count = 0 self.time = 0 end def log(query, &execution) result = nil seconds = Benchmark.realtime do result = execution.call end if log_query?(query) self.time += (seconds * 1000).to_i self.count += 1 end result end def bad? count >= bad_count or time >= bad_time end private def log_query?(query) query =~ /^(select|create|update|delete|insert)\b/i end end reset self.bad_count = 8 self.bad_time = 5000 end end
Version data entries
5 entries across 5 versions & 1 rubygems