Class: RailsPulse::Queries::Charts::AverageQueryTimes
- Inherits:
-
Object
- Object
- RailsPulse::Queries::Charts::AverageQueryTimes
- Defined in:
- app/models/rails_pulse/queries/charts/average_query_times.rb
Instance Method Summary collapse
-
#initialize(ransack_query:, group_by: :group_by_day, query: nil) ⇒ AverageQueryTimes
constructor
A new instance of AverageQueryTimes.
- #to_rails_chart ⇒ Object
Constructor Details
#initialize(ransack_query:, group_by: :group_by_day, query: nil) ⇒ AverageQueryTimes
Returns a new instance of AverageQueryTimes.
5 6 7 8 9 |
# File 'app/models/rails_pulse/queries/charts/average_query_times.rb', line 5 def initialize(ransack_query:, group_by: :group_by_day, query: nil) @ransack_query = ransack_query @group_by = group_by @query = query end |
Instance Method Details
#to_rails_chart ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/models/rails_pulse/queries/charts/average_query_times.rb', line 11 def to_rails_chart # Get actual data using existing logic actual_data = if @query @ransack_query.result(distinct: false) .public_send(@group_by, "occurred_at", series: true, time_zone: "UTC") .average(:duration) else @ransack_query.result(distinct: false) .left_joins(:operations) .public_send( @group_by, "rails_pulse_operations.occurred_at", series: true, time_zone: "UTC" ) .average("rails_pulse_operations.duration") end # Create full time range and fill in missing periods fill_missing_periods(actual_data) end |