Class: Trainspotter::Request
- Inherits:
-
Object
- Object
- Trainspotter::Request
- Defined in:
- app/models/trainspotter/request.rb
Instance Attribute Summary collapse
-
#completed ⇒ Object
Returns the value of attribute completed.
-
#entries ⇒ Object
readonly
Returns the value of attribute entries.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
Instance Method Summary collapse
- #<<(entry) ⇒ Object
- #action ⇒ Object
- #completed? ⇒ Boolean
- #controller ⇒ Object
- #duration_ms ⇒ Object
-
#initialize(id: nil) ⇒ Request
constructor
A new instance of Request.
- #ip ⇒ Object
- #method ⇒ Object
- #params ⇒ Object
- #path ⇒ Object
- #render_count ⇒ Object
- #render_duration_ms ⇒ Object
- #render_entries ⇒ Object
- #sql_count ⇒ Object
- #sql_duration_ms ⇒ Object
- #sql_entries ⇒ Object
- #started_at ⇒ Object
- #status ⇒ Object
- #status_class ⇒ Object
Constructor Details
#initialize(id: nil) ⇒ Request
Returns a new instance of Request.
6 7 8 9 10 |
# File 'app/models/trainspotter/request.rb', line 6 def initialize(id: nil) @id = id || SecureRandom.hex(8) @entries = [] @completed = false end |
Instance Attribute Details
#completed ⇒ Object
Returns the value of attribute completed.
4 5 6 |
# File 'app/models/trainspotter/request.rb', line 4 def completed @completed end |
#entries ⇒ Object (readonly)
Returns the value of attribute entries.
3 4 5 |
# File 'app/models/trainspotter/request.rb', line 3 def entries @entries end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
3 4 5 |
# File 'app/models/trainspotter/request.rb', line 3 def id @id end |
Instance Method Details
#<<(entry) ⇒ Object
12 13 14 |
# File 'app/models/trainspotter/request.rb', line 12 def <<(entry) @entries << entry end |
#action ⇒ Object
36 37 38 |
# File 'app/models/trainspotter/request.rb', line 36 def action processing_entry&.&.dig(:action) end |
#completed? ⇒ Boolean
16 17 18 |
# File 'app/models/trainspotter/request.rb', line 16 def completed? @completed end |
#controller ⇒ Object
32 33 34 |
# File 'app/models/trainspotter/request.rb', line 32 def controller processing_entry&.&.dig(:controller) end |
#duration_ms ⇒ Object
48 49 50 |
# File 'app/models/trainspotter/request.rb', line 48 def duration_ms end_entry&.&.dig(:duration_ms) end |
#ip ⇒ Object
28 29 30 |
# File 'app/models/trainspotter/request.rb', line 28 def ip start_entry&.&.dig(:ip) end |
#method ⇒ Object
20 21 22 |
# File 'app/models/trainspotter/request.rb', line 20 def method start_entry&.&.dig(:method) || "?" end |
#params ⇒ Object
40 41 42 |
# File 'app/models/trainspotter/request.rb', line 40 def params params_entry&.&.dig(:params) end |
#path ⇒ Object
24 25 26 |
# File 'app/models/trainspotter/request.rb', line 24 def path start_entry&.&.dig(:path) || "?" end |
#render_count ⇒ Object
72 73 74 |
# File 'app/models/trainspotter/request.rb', line 72 def render_count render_entries.size end |
#render_duration_ms ⇒ Object
76 77 78 |
# File 'app/models/trainspotter/request.rb', line 76 def render_duration_ms render_entries.sum { |e| e.duration_ms || 0 } end |
#render_entries ⇒ Object
60 61 62 |
# File 'app/models/trainspotter/request.rb', line 60 def render_entries @entries.select(&:render?) end |
#sql_count ⇒ Object
64 65 66 |
# File 'app/models/trainspotter/request.rb', line 64 def sql_count sql_entries.size end |
#sql_duration_ms ⇒ Object
68 69 70 |
# File 'app/models/trainspotter/request.rb', line 68 def sql_duration_ms sql_entries.sum { |e| e.duration_ms || 0 } end |
#sql_entries ⇒ Object
56 57 58 |
# File 'app/models/trainspotter/request.rb', line 56 def sql_entries @entries.select(&:sql?) end |
#started_at ⇒ Object
52 53 54 |
# File 'app/models/trainspotter/request.rb', line 52 def started_at start_entry&. end |
#status ⇒ Object
44 45 46 |
# File 'app/models/trainspotter/request.rb', line 44 def status end_entry&.&.dig(:status) end |
#status_class ⇒ Object
80 81 82 83 84 85 86 87 88 |
# File 'app/models/trainspotter/request.rb', line 80 def status_class case status when 200..299 then "success" when 300..399 then "redirect" when 400..499 then "client-error" when 500..599 then "server-error" else "unknown" end end |