Class: RailsPulse::Queries::Charts::AverageQueryTimes
- Inherits:
-
Charts::Base
- Object
- Charts::Base
- RailsPulse::Queries::Charts::AverageQueryTimes
- Defined in:
- app/models/rails_pulse/queries/charts/average_query_times.rb
Instance Method Summary collapse
Methods inherited from Charts::Base
Constructor Details
This class inherits a constructor from RailsPulse::Charts::Base
Instance Method Details
#to_chart_data ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/models/rails_pulse/queries/charts/average_query_times.rb', line 5 def to_chart_data # The ransack query already contains the correct filters summaries = @ransack_query.result(distinct: false) .with_tag_filters(@disabled_tags, @show_non_tagged) .where( summarizable_type: summarizable_type, period_type: @period_type ) summaries = summaries.where(summarizable_id: @subject.id) if @subject summaries = summaries .group(:period_start) .having("AVG(avg_duration) > ?", @start_duration || 0) .average(:avg_duration) .transform_keys(&:to_i) # Pad missing data points with zeros using base class helper data = pad_data_with_zeros(summaries, @start_time, @end_time, time_step) # Convert timestamps to milliseconds for JavaScript Date compatibility data.transform_keys { || * 1000 } .transform_values { |value| value.to_f.round(2) } end |