class ArQueryMatchers::Queries::QueryCounter::QueryStats

Attributes

queries[R]

Public Class Methods

new(queries) click to toggle source
# File lib/ar_query_matchers/queries/query_counter.rb, line 36
def initialize(queries)
  @queries = queries
end

Public Instance Methods

query_counts() click to toggle source

@return [Hash] of model name to query count, for example: { 'Company' => 5}

# File lib/ar_query_matchers/queries/query_counter.rb, line 43
def query_counts
  Hash[*queries.reduce({}) { |acc, (model_name, data)| acc.update model_name => data[:count] }.sort_by(&:first).flatten]
end
query_lines_by_frequency() click to toggle source

@return [Hash] of line in the source code to its frequency

# File lib/ar_query_matchers/queries/query_counter.rb, line 48
def query_lines_by_frequency
  queries.reduce({}) do |lines, (model_name, data)|
    frequencies = data[:lines].reduce(Hash.new { |h, k| h[k] = 0 }) do |freq, line|
      freq.update line => freq[line] + 1
    end
    lines.update model_name => frequencies
  end
end