Class: QueryDiet::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/query_diet/logger.rb

Constant Summary collapse

DEFAULT_OPTIONS =
{ :bad_count => 8, :bad_time => 5000 }

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.pausedObject

Returns the value of attribute paused.



6
7
8
# File 'lib/query_diet/logger.rb', line 6

def paused
  @paused
end

.queriesObject

Returns the value of attribute queries.



6
7
8
# File 'lib/query_diet/logger.rb', line 6

def queries
  @queries
end

Class Method Details

.bad?(options = {}) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
36
# 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

.countObject



29
30
31
# File 'lib/query_diet/logger.rb', line 29

def count
  queries.size
end

.log(query) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# 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?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/query_diet/logger.rb', line 38

def paused?
  paused
end

.resetObject



8
9
10
# File 'lib/query_diet/logger.rb', line 8

def reset
  self.queries = []
end

.timeObject



25
26
27
# File 'lib/query_diet/logger.rb', line 25

def time
  (queries.sum(&:last) * 1000).to_i
end