Class: LoggedQuery

Inherits:
Object
  • Object
show all
Defined in:
lib/sql-logging/logged_query.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sql, name, backtrace) ⇒ LoggedQuery

Returns a new instance of LoggedQuery.



4
5
6
7
8
9
10
11
12
# File 'lib/sql-logging/logged_query.rb', line 4

def initialize(sql, name, backtrace)
  @sql = sql
  @name = name
  @backtrace = backtrace
  @queries = 0
  @rows = 0
  @bytes = 0
  @times = []
end

Instance Attribute Details

#backtraceObject

Returns the value of attribute backtrace.



2
3
4
# File 'lib/sql-logging/logged_query.rb', line 2

def backtrace
  @backtrace
end

#bytesObject

Returns the value of attribute bytes.



2
3
4
# File 'lib/sql-logging/logged_query.rb', line 2

def bytes
  @bytes
end

#nameObject

Returns the value of attribute name.



2
3
4
# File 'lib/sql-logging/logged_query.rb', line 2

def name
  @name
end

#queriesObject

Returns the value of attribute queries.



2
3
4
# File 'lib/sql-logging/logged_query.rb', line 2

def queries
  @queries
end

#rowsObject

Returns the value of attribute rows.



2
3
4
# File 'lib/sql-logging/logged_query.rb', line 2

def rows
  @rows
end

#sqlObject

Returns the value of attribute sql.



2
3
4
# File 'lib/sql-logging/logged_query.rb', line 2

def sql
  @sql
end

Instance Method Details

#[](key) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/sql-logging/logged_query.rb', line 21

def [](key)
  case key.to_sym
  when :sql
    @sql
  when :name
    @name
  when :backtrace
    @backtrace
  when :queries
    @queries
  when :rows
    @rows
  when :bytes
    @bytes
  when :median_time
    median_time
  when :total_time
    total_time
  else nil
  end
end

#log_query(rows, bytes, time) ⇒ Object



14
15
16
17
18
19
# File 'lib/sql-logging/logged_query.rb', line 14

def log_query(rows, bytes, time)
  @queries += 1
  @rows += rows
  @bytes += bytes
  @times << time
end

#max_timeObject



51
52
53
# File 'lib/sql-logging/logged_query.rb', line 51

def max_time
  @times.max
end

#median_timeObject



43
44
45
# File 'lib/sql-logging/logged_query.rb', line 43

def median_time
  total_time / @times.length
end

#min_timeObject



47
48
49
# File 'lib/sql-logging/logged_query.rb', line 47

def min_time
  @times.min
end

#total_timeObject



55
56
57
# File 'lib/sql-logging/logged_query.rb', line 55

def total_time
  @times.inject(0) { |sum, time| sum += time }
end