Class: RailsErrorDashboard::Queries::ReleaseTimeline
- Inherits:
-
Object
- Object
- RailsErrorDashboard::Queries::ReleaseTimeline
- Defined in:
- lib/rails_error_dashboard/queries/release_timeline.rb
Overview
Query: Build a release timeline from error data, showing per-version health stats, “new in this release” error detection, stability indicators, and release-over-release deltas. Uses existing app_version and git_sha columns on error_logs — no new migration needed.
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(days = 30, application_id: nil) ⇒ ReleaseTimeline
constructor
A new instance of ReleaseTimeline.
Constructor Details
#initialize(days = 30, application_id: nil) ⇒ ReleaseTimeline
Returns a new instance of ReleaseTimeline.
13 14 15 16 17 |
# File 'lib/rails_error_dashboard/queries/release_timeline.rb', line 13 def initialize(days = 30, application_id: nil) @days = days @application_id = application_id @start_date = days.days.ago end |
Class Method Details
.call(days = 30, application_id: nil) ⇒ Object
9 10 11 |
# File 'lib/rails_error_dashboard/queries/release_timeline.rb', line 9 def self.call(days = 30, application_id: nil) new(days, application_id: application_id).call end |
Instance Method Details
#call ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/rails_error_dashboard/queries/release_timeline.rb', line 19 def call return empty_result unless has_version_column? releases = build_releases { releases: releases, summary: build_summary(releases) } rescue => e Rails.logger.error("[RailsErrorDashboard] ReleaseTimeline failed: #{e.class}: #{e.}") empty_result end |