Sha256: 266dc7487261c06b742f9f726f3d9db4b3950718be26122b3d720c1a46569e07
Contents?: true
Size: 1.39 KB
Versions: 1
Compression:
Stored size: 1.39 KB
Contents
module RailsPerformance module Reports class BaseReport attr_reader :db, :group, :sort, :title def initialize(db, group: nil, sort: nil, title: nil) @db = db @group = group @sort = sort @title = title set_defaults end def collect db.group_by(group).each_with_object([]) do |(k, v), res| res << yield(k, v) end end def set_defaults end def self.time_in_app_time_zone(time) app_time_zone = ::Rails.application.config.time_zone if app_time_zone.present? time.in_time_zone(app_time_zone) else time end end def calculate_data now = Time.current stop = Time.at(60 * (now.to_i / 60)) offset = RailsPerformance::Reports::BaseReport.time_in_app_time_zone(now).utc_offset current = stop - RailsPerformance.duration @data = [] all = {} # read current values db.group_by(group).each do |(k, v)| yield(all, k, v) end # add blank columns while current <= stop key = current.strftime(RailsPerformance::FORMAT) views = all[key].presence || 0 @data << [(current.to_i + offset) * 1000, views.round(2)] current += 1.minute end # sort by time @data.sort! end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails_performance-1.3.0 | lib/rails_performance/reports/base_report.rb |