class QueryDiet::Logger

Constants

DEFAULT_OPTIONS

Attributes

paused[RW]
queries[RW]

Public Class Methods

bad?(options = {}) click to toggle source
# File lib/query_diet/logger.rb, line 33
def bad?(options = {})
  options = options.reverse_merge(DEFAULT_OPTIONS)
  count >= options[:bad_count] or time >= options[:bad_time]
end
count() click to toggle source
# File lib/query_diet/logger.rb, line 29
def count
  queries.size
end
log(query) { || ... } click to toggle source
# File lib/query_diet/logger.rb, line 12
def log(query)
  if paused?
    yield
  else
    result = nil
    time = Benchmark.realtime do
      result = yield
    end
    queries << [query, time] if log_query?(query)
    result
  end
end
paused?() click to toggle source
# File lib/query_diet/logger.rb, line 38
def paused?
  paused
end
reset() click to toggle source
# File lib/query_diet/logger.rb, line 8
def reset
  self.queries = []
end
time() click to toggle source
# File lib/query_diet/logger.rb, line 25
def time
  (queries.sum(&:last) * 1000).to_i
end

Private Class Methods

log_query?(query) click to toggle source
# File lib/query_diet/logger.rb, line 44
def log_query?(query)
  query =~ /^(select|create|update|delete|insert)\b/i
end