Sha256: f308b5a37783831abfd357f971e8620f17e8f47609e9045536dc3889b478f47f

Contents?: true

Size: 1.05 KB

Versions: 14

Compression:

Stored size: 1.05 KB

Contents

module Praxis::Mapper

  class QueryStatistics

    def initialize(queries_by_model)
      @queries_by_model = queries_by_model
    end

    # sums up statistics across all queries, indexed by model
    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

    # sums up statistics across all models and queries
    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

  end

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
praxis-mapper-4.5 lib/praxis-mapper/query_statistics.rb
praxis-mapper-4.4.1 lib/praxis-mapper/query_statistics.rb
praxis-mapper-4.4 lib/praxis-mapper/query_statistics.rb
praxis-mapper-4.3 lib/praxis-mapper/query_statistics.rb
praxis-mapper-4.2 lib/praxis-mapper/query_statistics.rb
praxis-mapper-4.1.2 lib/praxis-mapper/query_statistics.rb
praxis-mapper-4.1.1 lib/praxis-mapper/query_statistics.rb
praxis-mapper-4.1 lib/praxis-mapper/query_statistics.rb
praxis-mapper-4.0 lib/praxis-mapper/query_statistics.rb
praxis-mapper-3.4.0 lib/praxis-mapper/query_statistics.rb
praxis-mapper-3.3 lib/praxis-mapper/query_statistics.rb
praxis-mapper-3.2 lib/praxis-mapper/query_statistics.rb
praxis-mapper-3.1.2 lib/praxis-mapper/query_statistics.rb
praxis-mapper-3.1.1 lib/praxis-mapper/query_statistics.rb