Sha256: d0cb0e73537e1c16bde12b7e23cdf6e3fb533667f788ac19eaaa506caf41dcf6

Contents?: true

Size: 679 Bytes

Versions: 1

Compression:

Stored size: 679 Bytes

Contents

module MongoProfiler
  class ProfileGroup
    include Mongoid::Document
    include Mongoid::Timestamps

    field :name, type: String

    has_many :profiles, dependent: :delete

    index name: 1

    def total_time
      profiles.sum(&:total_time)
    end

    def avg_time
      return 0 if (count = profiles.count) == 0
      total_time / count
    end

    def min_time
      profiles.collect(&:total_time).min
    end

    def max_time
      profiles.collect(&:total_time).max
    end

    def filter_by_score(score)
      profiles.select do |p|
        p.score == score
      end
    end

    def count_by_score(score)
      filter_by_score(score).size
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mongo_profiler-0.0.2 lib/mongo_profiler/models/profile_group.rb