Class: RailsPulse::Route

Inherits:
ApplicationRecord show all
Includes:
Taggable
Defined in:
app/models/rails_pulse/route.rb

Constant Summary

Constants included from Taggable

Taggable::MAX_TAG_LENGTH, Taggable::TAG_NAME_REGEX

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Taggable

#add_tag, #has_tag?, #remove_tag, #tag_list, #tag_list=

Class Method Details

.average_response_timeObject



67
68
69
# File 'app/models/rails_pulse/route.rb', line 67

def self.average_response_time
  joins(:requests).average("rails_pulse_requests.duration") || 0
end

.by_method_and_path(method, path) ⇒ Object



15
16
17
# File 'app/models/rails_pulse/route.rb', line 15

def self.by_method_and_path(method, path)
  create_or_find_by(method: method, path: path) || find_by!(method: method, path: path)
end

.ransackable_associations(auth_object = nil) ⇒ Object



23
24
25
# File 'app/models/rails_pulse/route.rb', line 23

def self.ransackable_associations(auth_object = nil)
  %w[requests]
end

.ransackable_attributes(auth_object = nil) ⇒ Object



19
20
21
# File 'app/models/rails_pulse/route.rb', line 19

def self.ransackable_attributes(auth_object = nil)
  %w[path average_response_time_ms max_response_time_ms request_count requests_per_minute occurred_at requests_occurred_at error_count error_rate_percentage status_indicator]
end

Instance Method Details

#path_and_methodObject



71
72
73
# File 'app/models/rails_pulse/route.rb', line 71

def path_and_method
  "#{path} #{method}"
end

#to_breadcrumbObject



63
64
65
# File 'app/models/rails_pulse/route.rb', line 63

def to_breadcrumb
  "#{method.upcase} #{path}".truncate(60)
end