class Praxis::Mapper::QueryStatistics

Public Class Methods

new(queries_by_model) click to toggle source
# File lib/praxis-mapper/query_statistics.rb, line 5
def initialize(queries_by_model)
  @queries_by_model = queries_by_model
end

Public Instance Methods

sum_totals() click to toggle source

sums up statistics across all models and queries

# File lib/praxis-mapper/query_statistics.rb, line 30
def sum_totals
  @sum_totals ||= begin
    totals = Hash.new(0)

    sum_totals_by_model.each do |_, model_totals|
      model_totals.each do |stat, value|
        totals[stat] += value
      end
    end

    totals
  end
end
sum_totals_by_model() click to toggle source

sums up statistics across all queries, indexed by model

# File lib/praxis-mapper/query_statistics.rb, line 10
def sum_totals_by_model
  @sum_totals_by_model ||= begin
    totals = Hash.new { |hash, key| hash[key] = Hash.new(0) }

    @queries_by_model.each do |model, queries|
      totals[model][:query_count] = queries.length
      queries.each do |query|
        query.statistics.each do |stat, value|
          totals[model][stat] += value
        end
      end

      totals[model][:datastore_interaction_time] = totals[model][:datastore_interaction_time]
    end

    totals
  end
end