Class: ActiveRecord::QueryCounter

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

Constant Summary collapse

IGNORED_SQL =
[
  /^PRAGMA (?!(table_info))/,
  /^SELECT currval/,
  /^SELECT CAST/,
  /^SELECT @@IDENTITY/,
  /^SELECT @@ROWCOUNT/,
  /^SAVEPOINT/,
  /FROM pg_attribute/,
  /JOIN pg_attribute/,
  /JOIN pg_namespace/,
  /SHOW search_path/,
  /^BEGIN$/,
  /^ROLLBACK$/,
  /^ROLLBACK TO SAVEPOINT/,
  /^RELEASE SAVEPOINT/,
  /^SHOW max_identifier_length/
]

Class Attribute Summary collapse

Instance Method Summary collapse

Class Attribute Details

.queriesObject

Returns the value of attribute queries.



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

def queries
  @queries
end

Instance Method Details

#call(name, start, finish, message_id, values) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/testscore.rb', line 29

def call(name, start, finish, message_id, values)
  return if 'CACHE' == values[:name]
  return if IGNORED_SQL.any? { |r| values[:sql] =~ r }

  self.class.queries ||= []
  self.class.queries << {
    duration: finish - start,
    sql: values[:sql]
  }
end