· 7 years ago · Oct 12, 2018, 01:56 PM
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="utf-8" />
5 <title>Action Controller: Exception caught</title>
6 <style>
7 body {
8 background-color: #FAFAFA;
9 color: #333;
10 margin: 0px;
11 }
12
13 body, p, ol, ul, td {
14 font-family: helvetica, verdana, arial, sans-serif;
15 font-size: 13px;
16 line-height: 18px;
17 }
18
19 pre {
20 font-size: 11px;
21 white-space: pre-wrap;
22 }
23
24 pre.box {
25 border: 1px solid #EEE;
26 padding: 10px;
27 margin: 0px;
28 width: 958px;
29 }
30
31 header {
32 color: #F0F0F0;
33 background: #C52F24;
34 padding: 0.5em 1.5em;
35 }
36
37 h1 {
38 margin: 0.2em 0;
39 line-height: 1.1em;
40 font-size: 2em;
41 }
42
43 h2 {
44 color: #C52F24;
45 line-height: 25px;
46 }
47
48 .details {
49 border: 1px solid #D0D0D0;
50 border-radius: 4px;
51 margin: 1em 0px;
52 display: block;
53 width: 978px;
54 }
55
56 .summary {
57 padding: 8px 15px;
58 border-bottom: 1px solid #D0D0D0;
59 display: block;
60 }
61
62 .details pre {
63 margin: 5px;
64 border: none;
65 }
66
67 #container {
68 box-sizing: border-box;
69 width: 100%;
70 padding: 0 1.5em;
71 }
72
73 .source * {
74 margin: 0px;
75 padding: 0px;
76 }
77
78 .source {
79 border: 1px solid #D9D9D9;
80 background: #ECECEC;
81 width: 978px;
82 }
83
84 .source pre {
85 padding: 10px 0px;
86 border: none;
87 }
88
89 .source .data {
90 font-size: 80%;
91 overflow: auto;
92 background-color: #FFF;
93 }
94
95 .info {
96 padding: 0.5em;
97 }
98
99 .source .data .line_numbers {
100 background-color: #ECECEC;
101 color: #AAA;
102 padding: 1em .5em;
103 border-right: 1px solid #DDD;
104 text-align: right;
105 }
106
107 .line {
108 padding-left: 10px;
109 }
110
111 .line:hover {
112 background-color: #F6F6F6;
113 }
114
115 .line.active {
116 background-color: #FFCCCC;
117 }
118
119 .hidden {
120 display: none;
121 }
122
123 a { color: #980905; }
124 a:visited { color: #666; }
125 a.trace-frames { color: #666; }
126 a:hover { color: #C52F24; }
127 a.trace-frames.selected { color: #C52F24 }
128
129
130 </style>
131
132 <script>
133 var toggle = function(id) {
134 var s = document.getElementById(id).style;
135 s.display = s.display == 'none' ? 'block' : 'none';
136 return false;
137 }
138 var show = function(id) {
139 document.getElementById(id).style.display = 'block';
140 }
141 var hide = function(id) {
142 document.getElementById(id).style.display = 'none';
143 }
144 var toggleTrace = function() {
145 return toggle('blame_trace');
146 }
147 var toggleSessionDump = function() {
148 return toggle('session_dump');
149 }
150 var toggleEnvDump = function() {
151 return toggle('env_dump');
152 }
153 </script>
154</head>
155<body>
156
157<header>
158 <h1>
159 NameError in
160 Api::Comments#create
161 </h1>
162</header>
163
164<div id="container">
165 <p>
166 Showing <i>/home/rails/howdoo-project/howdoo_web_mobile/app/views/api/comments/_comment.json.jbuilder</i> where line <b>#4</b> raised:
167 </p>
168 <pre><code>undefined local variable or method `persona_id' for #<#<Class:0x000000088c4620>:0x007f7ef07af438>
169Did you mean? persona_url</code></pre>
170
171 <div class="source " id="frame-source-0">
172 <div class="info">
173 Extracted source (around line <strong>#4</strong>):
174 </div>
175 <div class="data">
176 <table cellpadding="0" cellspacing="0" class="lines">
177 <tr>
178 <td>
179 <pre class="line_numbers">
180<span>2</span>
181<span>3</span>
182<span>4</span>
183<span>5</span>
184<span>6</span>
185<span>7</span>
186 </pre>
187 </td>
188<td width="100%">
189<pre>
190<div class="line">
191</div><div class="line">json.extract! comment, :id, :content, :created_at, :parent_id
192</div><div class="line active">json.is_liked comment.is_liked?(persona_id)
193</div><div class="line">json.persona do
194</div><div class="line"> json.partial! 'api/personas/persona', persona: comment.persona
195</div><div class="line">end
196</div>
197</pre>
198</td>
199 </tr>
200 </table>
201 </div>
202 </div>
203 <div class="source hidden" id="frame-source-1">
204 <div class="info">
205 Extracted source (around line <strong>#157</strong>):
206 </div>
207 <div class="data">
208 <table cellpadding="0" cellspacing="0" class="lines">
209 <tr>
210 <td>
211 <pre class="line_numbers">
212<span>155</span>
213<span>156</span>
214<span>157</span>
215<span>158</span>
216<span>159</span>
217<span>160</span>
218 </pre>
219 </td>
220<td width="100%">
221<pre>
222<div class="line"> instrument_render_template do
223</div><div class="line"> compile!(view)
224</div><div class="line active"> view.send(method_name, locals, buffer, &block)
225</div><div class="line"> end
226</div><div class="line"> rescue => e
227</div><div class="line"> handle_render_error(view, e)
228</div>
229</pre>
230</td>
231 </tr>
232 </table>
233 </div>
234 </div>
235 <div class="source hidden" id="frame-source-2">
236 <div class="info">
237 Extracted source (around line <strong>#168</strong>):
238 </div>
239 <div class="data">
240 <table cellpadding="0" cellspacing="0" class="lines">
241 <tr>
242 <td>
243 <pre class="line_numbers">
244<span>166</span>
245<span>167</span>
246<span>168</span>
247<span>169</span>
248<span>170</span>
249<span>171</span>
250 </pre>
251 </td>
252<td width="100%">
253<pre>
254<div class="line"> instrumenter.instrument(name, payload) { yield payload if block_given? }
255</div><div class="line"> else
256</div><div class="line active"> yield payload if block_given?
257</div><div class="line"> end
258</div><div class="line"> end
259</div><div class="line">
260</div>
261</pre>
262</td>
263 </tr>
264 </table>
265 </div>
266 </div>
267 <div class="source hidden" id="frame-source-3">
268 <div class="info">
269 Extracted source (around line <strong>#352</strong>):
270 </div>
271 <div class="data">
272 <table cellpadding="0" cellspacing="0" class="lines">
273 <tr>
274 <td>
275 <pre class="line_numbers">
276<span>350</span>
277<span>351</span>
278<span>352</span>
279<span>353</span>
280<span>354</span>
281<span>355</span>
282 </pre>
283 </td>
284<td width="100%">
285<pre>
286<div class="line">
287</div><div class="line"> def instrument_render_template(&block)
288</div><div class="line active"> ActiveSupport::Notifications.instrument("!render_template.action_view".freeze, instrument_payload, &block)
289</div><div class="line"> end
290</div><div class="line">
291</div><div class="line"> def instrument_payload
292</div>
293</pre>
294</td>
295 </tr>
296 </table>
297 </div>
298 </div>
299 <div class="source hidden" id="frame-source-4">
300 <div class="info">
301 Extracted source (around line <strong>#155</strong>):
302 </div>
303 <div class="data">
304 <table cellpadding="0" cellspacing="0" class="lines">
305 <tr>
306 <td>
307 <pre class="line_numbers">
308<span>153</span>
309<span>154</span>
310<span>155</span>
311<span>156</span>
312<span>157</span>
313<span>158</span>
314 </pre>
315 </td>
316<td width="100%">
317<pre>
318<div class="line"> # consume this in production. This is only slow if it's being listened to.
319</div><div class="line"> def render(view, locals, buffer = nil, &block)
320</div><div class="line active"> instrument_render_template do
321</div><div class="line"> compile!(view)
322</div><div class="line"> view.send(method_name, locals, buffer, &block)
323</div><div class="line"> end
324</div>
325</pre>
326</td>
327 </tr>
328 </table>
329 </div>
330 </div>
331 <div class="source hidden" id="frame-source-5">
332 <div class="info">
333 Extracted source (around line <strong>#342</strong>):
334 </div>
335 <div class="data">
336 <table cellpadding="0" cellspacing="0" class="lines">
337 <tr>
338 <td>
339 <pre class="line_numbers">
340<span>340</span>
341<span>341</span>
342<span>342</span>
343<span>343</span>
344<span>344</span>
345<span>345</span>
346 </pre>
347 </td>
348<td width="100%">
349<pre>
350<div class="line"> locals[as] = object if @has_object
351</div><div class="line">
352</div><div class="line active"> content = @template.render(view, locals) do |*name|
353</div><div class="line"> view._layout_for(*name, &block)
354</div><div class="line"> end
355</div><div class="line">
356</div>
357</pre>
358</td>
359 </tr>
360 </table>
361 </div>
362 </div>
363 <div class="source hidden" id="frame-source-6">
364 <div class="info">
365 Extracted source (around line <strong>#42</strong>):
366 </div>
367 <div class="data">
368 <table cellpadding="0" cellspacing="0" class="lines">
369 <tr>
370 <td>
371 <pre class="line_numbers">
372<span>40</span>
373<span>41</span>
374<span>42</span>
375<span>43</span>
376<span>44</span>
377<span>45</span>
378 </pre>
379 </td>
380<td width="100%">
381<pre>
382<div class="line">
383</div><div class="line"> ActiveSupport::Notifications.instrument("render_#{name}.action_view", options) do |payload|
384</div><div class="line active"> yield payload
385</div><div class="line"> end
386</div><div class="line"> end
387</div><div class="line">
388</div>
389</pre>
390</td>
391 </tr>
392 </table>
393 </div>
394 </div>
395 <div class="source hidden" id="frame-source-7">
396 <div class="info">
397 Extracted source (around line <strong>#166</strong>):
398 </div>
399 <div class="data">
400 <table cellpadding="0" cellspacing="0" class="lines">
401 <tr>
402 <td>
403 <pre class="line_numbers">
404<span>164</span>
405<span>165</span>
406<span>166</span>
407<span>167</span>
408<span>168</span>
409<span>169</span>
410 </pre>
411 </td>
412<td width="100%">
413<pre>
414<div class="line"> def instrument(name, payload = {})
415</div><div class="line"> if notifier.listening?(name)
416</div><div class="line active"> instrumenter.instrument(name, payload) { yield payload if block_given? }
417</div><div class="line"> else
418</div><div class="line"> yield payload if block_given?
419</div><div class="line"> end
420</div>
421</pre>
422</td>
423 </tr>
424 </table>
425 </div>
426 </div>
427 <div class="source hidden" id="frame-source-8">
428 <div class="info">
429 Extracted source (around line <strong>#21</strong>):
430 </div>
431 <div class="data">
432 <table cellpadding="0" cellspacing="0" class="lines">
433 <tr>
434 <td>
435 <pre class="line_numbers">
436<span>19</span>
437<span>20</span>
438<span>21</span>
439<span>22</span>
440<span>23</span>
441<span>24</span>
442 </pre>
443 </td>
444<td width="100%">
445<pre>
446<div class="line"> listeners_state = start name, payload
447</div><div class="line"> begin
448</div><div class="line active"> yield payload
449</div><div class="line"> rescue Exception => e
450</div><div class="line"> payload[:exception] = [e.class.name, e.message]
451</div><div class="line"> payload[:exception_object] = e
452</div>
453</pre>
454</td>
455 </tr>
456 </table>
457 </div>
458 </div>
459 <div class="source hidden" id="frame-source-9">
460 <div class="info">
461 Extracted source (around line <strong>#166</strong>):
462 </div>
463 <div class="data">
464 <table cellpadding="0" cellspacing="0" class="lines">
465 <tr>
466 <td>
467 <pre class="line_numbers">
468<span>164</span>
469<span>165</span>
470<span>166</span>
471<span>167</span>
472<span>168</span>
473<span>169</span>
474 </pre>
475 </td>
476<td width="100%">
477<pre>
478<div class="line"> def instrument(name, payload = {})
479</div><div class="line"> if notifier.listening?(name)
480</div><div class="line active"> instrumenter.instrument(name, payload) { yield payload if block_given? }
481</div><div class="line"> else
482</div><div class="line"> yield payload if block_given?
483</div><div class="line"> end
484</div>
485</pre>
486</td>
487 </tr>
488 </table>
489 </div>
490 </div>
491 <div class="source hidden" id="frame-source-10">
492 <div class="info">
493 Extracted source (around line <strong>#41</strong>):
494 </div>
495 <div class="data">
496 <table cellpadding="0" cellspacing="0" class="lines">
497 <tr>
498 <td>
499 <pre class="line_numbers">
500<span>39</span>
501<span>40</span>
502<span>41</span>
503<span>42</span>
504<span>43</span>
505<span>44</span>
506 </pre>
507 </td>
508<td width="100%">
509<pre>
510<div class="line"> options[:identifier] ||= (@template && @template.identifier) || @path
511</div><div class="line">
512</div><div class="line active"> ActiveSupport::Notifications.instrument("render_#{name}.action_view", options) do |payload|
513</div><div class="line"> yield payload
514</div><div class="line"> end
515</div><div class="line"> end
516</div>
517</pre>
518</td>
519 </tr>
520 </table>
521 </div>
522 </div>
523 <div class="source hidden" id="frame-source-11">
524 <div class="info">
525 Extracted source (around line <strong>#331</strong>):
526 </div>
527 <div class="data">
528 <table cellpadding="0" cellspacing="0" class="lines">
529 <tr>
530 <td>
531 <pre class="line_numbers">
532<span>329</span>
533<span>330</span>
534<span>331</span>
535<span>332</span>
536<span>333</span>
537<span>334</span>
538 </pre>
539 </td>
540<td width="100%">
541<pre>
542<div class="line">
543</div><div class="line"> def render_partial
544</div><div class="line active"> instrument(:partial) do |payload|
545</div><div class="line"> view, locals, block = @view, @locals, @block
546</div><div class="line"> object, as = @object, @variable
547</div><div class="line">
548</div>
549</pre>
550</td>
551 </tr>
552 </table>
553 </div>
554 </div>
555 <div class="source hidden" id="frame-source-12">
556 <div class="info">
557 Extracted source (around line <strong>#310</strong>):
558 </div>
559 <div class="data">
560 <table cellpadding="0" cellspacing="0" class="lines">
561 <tr>
562 <td>
563 <pre class="line_numbers">
564<span>308</span>
565<span>309</span>
566<span>310</span>
567<span>311</span>
568<span>312</span>
569<span>313</span>
570 </pre>
571 </td>
572<td width="100%">
573<pre>
574<div class="line"> render_collection
575</div><div class="line"> else
576</div><div class="line active"> render_partial
577</div><div class="line"> end
578</div><div class="line"> end
579</div><div class="line">
580</div>
581</pre>
582</td>
583 </tr>
584 </table>
585 </div>
586 </div>
587 <div class="source hidden" id="frame-source-13">
588 <div class="info">
589 Extracted source (around line <strong>#47</strong>):
590 </div>
591 <div class="data">
592 <table cellpadding="0" cellspacing="0" class="lines">
593 <tr>
594 <td>
595 <pre class="line_numbers">
596<span>45</span>
597<span>46</span>
598<span>47</span>
599<span>48</span>
600<span>49</span>
601<span>50</span>
602 </pre>
603 </td>
604<td width="100%">
605<pre>
606<div class="line"> # Direct access to partial rendering.
607</div><div class="line"> def render_partial(context, options, &block) #:nodoc:
608</div><div class="line active"> PartialRenderer.new(@lookup_context).render(context, options, block)
609</div><div class="line"> end
610</div><div class="line">
611</div><div class="line"> def cache_hits # :nodoc:
612</div>
613</pre>
614</td>
615 </tr>
616 </table>
617 </div>
618 </div>
619 <div class="source hidden" id="frame-source-14">
620 <div class="info">
621 Extracted source (around line <strong>#21</strong>):
622 </div>
623 <div class="data">
624 <table cellpadding="0" cellspacing="0" class="lines">
625 <tr>
626 <td>
627 <pre class="line_numbers">
628<span>19</span>
629<span>20</span>
630<span>21</span>
631<span>22</span>
632<span>23</span>
633<span>24</span>
634 </pre>
635 </td>
636<td width="100%">
637<pre>
638<div class="line"> def render(context, options)
639</div><div class="line"> if options.key?(:partial)
640</div><div class="line active"> render_partial(context, options)
641</div><div class="line"> else
642</div><div class="line"> render_template(context, options)
643</div><div class="line"> end
644</div>
645</pre>
646</td>
647 </tr>
648 </table>
649 </div>
650 </div>
651 <div class="source hidden" id="frame-source-15">
652 <div class="info">
653 Extracted source (around line <strong>#103</strong>):
654 </div>
655 <div class="data">
656 <table cellpadding="0" cellspacing="0" class="lines">
657 <tr>
658 <td>
659 <pre class="line_numbers">
660<span>101</span>
661<span>102</span>
662<span>103</span>
663<span>104</span>
664<span>105</span>
665<span>106</span>
666 </pre>
667 </td>
668<td width="100%">
669<pre>
670<div class="line"> lookup_context.variants = variant if variant
671</div><div class="line">
672</div><div class="line active"> view_renderer.render(context, options)
673</div><div class="line"> end
674</div><div class="line">
675</div><div class="line"> # Assign the rendered format to look up context.
676</div>
677</pre>
678</td>
679 </tr>
680 </table>
681 </div>
682 </div>
683 <div class="source hidden" id="frame-source-16">
684 <div class="info">
685 Extracted source (around line <strong>#217</strong>):
686 </div>
687 <div class="data">
688 <table cellpadding="0" cellspacing="0" class="lines">
689 <tr>
690 <td>
691 <pre class="line_numbers">
692<span>215</span>
693<span>216</span>
694<span>217</span>
695<span>218</span>
696<span>219</span>
697<span>220</span>
698 </pre>
699 </td>
700<td width="100%">
701<pre>
702<div class="line"> Rack::Chunked::Body.new view_renderer.render_body(view_context, options)
703</div><div class="line"> else
704</div><div class="line active"> super
705</div><div class="line"> end
706</div><div class="line"> end
707</div><div class="line"> end
708</div>
709</pre>
710</td>
711 </tr>
712 </table>
713 </div>
714 </div>
715 <div class="source hidden" id="frame-source-17">
716 <div class="info">
717 Extracted source (around line <strong>#83</strong>):
718 </div>
719 <div class="data">
720 <table cellpadding="0" cellspacing="0" class="lines">
721 <tr>
722 <td>
723 <pre class="line_numbers">
724<span>81</span>
725<span>82</span>
726<span>83</span>
727<span>84</span>
728<span>85</span>
729<span>86</span>
730 </pre>
731 </td>
732<td width="100%">
733<pre>
734<div class="line"> def render_to_body(options = {})
735</div><div class="line"> _process_options(options)
736</div><div class="line active"> _render_template(options)
737</div><div class="line"> end
738</div><div class="line">
739</div><div class="line"> def rendered_format
740</div>
741</pre>
742</td>
743 </tr>
744 </table>
745 </div>
746 </div>
747 <div class="source hidden" id="frame-source-18">
748 <div class="info">
749 Extracted source (around line <strong>#52</strong>):
750 </div>
751 <div class="data">
752 <table cellpadding="0" cellspacing="0" class="lines">
753 <tr>
754 <td>
755 <pre class="line_numbers">
756<span>50</span>
757<span>51</span>
758<span>52</span>
759<span>53</span>
760<span>54</span>
761<span>55</span>
762 </pre>
763 </td>
764<td width="100%">
765<pre>
766<div class="line">
767</div><div class="line"> def render_to_body(options = {})
768</div><div class="line active"> super || _render_in_priorities(options) || " "
769</div><div class="line"> end
770</div><div class="line">
771</div><div class="line"> private
772</div>
773</pre>
774</td>
775 </tr>
776 </table>
777 </div>
778 </div>
779 <div class="source hidden" id="frame-source-19">
780 <div class="info">
781 Extracted source (around line <strong>#141</strong>):
782 </div>
783 <div class="data">
784 <table cellpadding="0" cellspacing="0" class="lines">
785 <tr>
786 <td>
787 <pre class="line_numbers">
788<span>139</span>
789<span>140</span>
790<span>141</span>
791<span>142</span>
792<span>143</span>
793<span>144</span>
794 </pre>
795 </td>
796<td width="100%">
797<pre>
798<div class="line"> # <tt>ActionView::Rendering.render_to_body</tt>, if present.
799</div><div class="line"> def render_to_body(options)
800</div><div class="line active"> _render_to_body_with_renderer(options) || super
801</div><div class="line"> end
802</div><div class="line">
803</div><div class="line"> def _render_to_body_with_renderer(options)
804</div>
805</pre>
806</td>
807 </tr>
808 </table>
809 </div>
810 </div>
811 <div class="source hidden" id="frame-source-20">
812 <div class="info">
813 Extracted source (around line <strong>#24</strong>):
814 </div>
815 <div class="data">
816 <table cellpadding="0" cellspacing="0" class="lines">
817 <tr>
818 <td>
819 <pre class="line_numbers">
820<span>22</span>
821<span>23</span>
822<span>24</span>
823<span>25</span>
824<span>26</span>
825<span>27</span>
826 </pre>
827 </td>
828<td width="100%">
829<pre>
830<div class="line"> def render(*args, &block)
831</div><div class="line"> options = _normalize_render(*args, &block)
832</div><div class="line active"> rendered_body = render_to_body(options)
833</div><div class="line"> if options[:html]
834</div><div class="line"> _set_html_content_type
835</div><div class="line"> else
836</div>
837</pre>
838</td>
839 </tr>
840 </table>
841 </div>
842 </div>
843 <div class="source hidden" id="frame-source-21">
844 <div class="info">
845 Extracted source (around line <strong>#36</strong>):
846 </div>
847 <div class="data">
848 <table cellpadding="0" cellspacing="0" class="lines">
849 <tr>
850 <td>
851 <pre class="line_numbers">
852<span>34</span>
853<span>35</span>
854<span>36</span>
855<span>37</span>
856<span>38</span>
857<span>39</span>
858 </pre>
859 </td>
860<td width="100%">
861<pre>
862<div class="line"> def render(*args) #:nodoc:
863</div><div class="line"> raise ::AbstractController::DoubleRenderError if response_body
864</div><div class="line active"> super
865</div><div class="line"> end
866</div><div class="line">
867</div><div class="line"> # Overwrite render_to_string because body can now be set to a Rack body.
868</div>
869</pre>
870</td>
871 </tr>
872 </table>
873 </div>
874 </div>
875 <div class="source hidden" id="frame-source-22">
876 <div class="info">
877 Extracted source (around line <strong>#44</strong>):
878 </div>
879 <div class="data">
880 <table cellpadding="0" cellspacing="0" class="lines">
881 <tr>
882 <td>
883 <pre class="line_numbers">
884<span>42</span>
885<span>43</span>
886<span>44</span>
887<span>45</span>
888<span>46</span>
889<span>47</span>
890 </pre>
891 </td>
892<td width="100%">
893<pre>
894<div class="line"> render_output = nil
895</div><div class="line"> self.view_runtime = cleanup_view_runtime do
896</div><div class="line active"> Benchmark.ms { render_output = super }
897</div><div class="line"> end
898</div><div class="line"> render_output
899</div><div class="line"> end
900</div>
901</pre>
902</td>
903 </tr>
904 </table>
905 </div>
906 </div>
907 <div class="source hidden" id="frame-source-23">
908 <div class="info">
909 Extracted source (around line <strong>#12</strong>):
910 </div>
911 <div class="data">
912 <table cellpadding="0" cellspacing="0" class="lines">
913 <tr>
914 <td>
915 <pre class="line_numbers">
916<span>10</span>
917<span>11</span>
918<span>12</span>
919<span>13</span>
920<span>14</span>
921 </pre>
922 </td>
923<td width="100%">
924<pre>
925<div class="line"> # # => 0.074
926</div><div class="line"> def ms
927</div><div class="line active"> 1000 * realtime { yield }
928</div><div class="line"> end
929</div><div class="line">end
930</div>
931</pre>
932</td>
933 </tr>
934 </table>
935 </div>
936 </div>
937 <div class="source hidden" id="frame-source-24">
938 <div class="info">
939 Extracted source (around line <strong>#308</strong>):
940 </div>
941 <div class="data">
942 <table cellpadding="0" cellspacing="0" class="lines">
943 <tr>
944 <td>
945 <pre class="line_numbers">
946<span>306</span>
947<span>307</span>
948<span>308</span>
949<span>309</span>
950<span>310</span>
951<span>311</span>
952 </pre>
953 </td>
954<td width="100%">
955<pre>
956<div class="line"> def realtime # :yield:
957</div><div class="line"> r0 = Process.clock_gettime(Process::CLOCK_MONOTONIC)
958</div><div class="line active"> yield
959</div><div class="line"> Process.clock_gettime(Process::CLOCK_MONOTONIC) - r0
960</div><div class="line"> end
961</div><div class="line">
962</div>
963</pre>
964</td>
965 </tr>
966 </table>
967 </div>
968 </div>
969 <div class="source hidden" id="frame-source-25">
970 <div class="info">
971 Extracted source (around line <strong>#12</strong>):
972 </div>
973 <div class="data">
974 <table cellpadding="0" cellspacing="0" class="lines">
975 <tr>
976 <td>
977 <pre class="line_numbers">
978<span>10</span>
979<span>11</span>
980<span>12</span>
981<span>13</span>
982<span>14</span>
983 </pre>
984 </td>
985<td width="100%">
986<pre>
987<div class="line"> # # => 0.074
988</div><div class="line"> def ms
989</div><div class="line active"> 1000 * realtime { yield }
990</div><div class="line"> end
991</div><div class="line">end
992</div>
993</pre>
994</td>
995 </tr>
996 </table>
997 </div>
998 </div>
999 <div class="source hidden" id="frame-source-26">
1000 <div class="info">
1001 Extracted source (around line <strong>#44</strong>):
1002 </div>
1003 <div class="data">
1004 <table cellpadding="0" cellspacing="0" class="lines">
1005 <tr>
1006 <td>
1007 <pre class="line_numbers">
1008<span>42</span>
1009<span>43</span>
1010<span>44</span>
1011<span>45</span>
1012<span>46</span>
1013<span>47</span>
1014 </pre>
1015 </td>
1016<td width="100%">
1017<pre>
1018<div class="line"> render_output = nil
1019</div><div class="line"> self.view_runtime = cleanup_view_runtime do
1020</div><div class="line active"> Benchmark.ms { render_output = super }
1021</div><div class="line"> end
1022</div><div class="line"> render_output
1023</div><div class="line"> end
1024</div>
1025</pre>
1026</td>
1027 </tr>
1028 </table>
1029 </div>
1030 </div>
1031 <div class="source hidden" id="frame-source-27">
1032 <div class="info">
1033 Extracted source (around line <strong>#87</strong>):
1034 </div>
1035 <div class="data">
1036 <table cellpadding="0" cellspacing="0" class="lines">
1037 <tr>
1038 <td>
1039 <pre class="line_numbers">
1040<span>85</span>
1041<span>86</span>
1042<span>87</span>
1043<span>88</span>
1044<span>89</span>
1045<span>90</span>
1046 </pre>
1047 </td>
1048<td width="100%">
1049<pre>
1050<div class="line"> # :api: plugin
1051</div><div class="line"> def cleanup_view_runtime
1052</div><div class="line active"> yield
1053</div><div class="line"> end
1054</div><div class="line">
1055</div><div class="line"> # Every time after an action is processed, this method is invoked
1056</div>
1057</pre>
1058</td>
1059 </tr>
1060 </table>
1061 </div>
1062 </div>
1063 <div class="source hidden" id="frame-source-28">
1064 <div class="info">
1065 Extracted source (around line <strong>#29</strong>):
1066 </div>
1067 <div class="data">
1068 <table cellpadding="0" cellspacing="0" class="lines">
1069 <tr>
1070 <td>
1071 <pre class="line_numbers">
1072<span>27</span>
1073<span>28</span>
1074<span>29</span>
1075<span>30</span>
1076<span>31</span>
1077<span>32</span>
1078 </pre>
1079 </td>
1080<td width="100%">
1081<pre>
1082<div class="line"> db_rt_before_render = ActiveRecord::LogSubscriber.reset_runtime
1083</div><div class="line"> self.db_runtime = (db_runtime || 0) + db_rt_before_render
1084</div><div class="line active"> runtime = super
1085</div><div class="line"> db_rt_after_render = ActiveRecord::LogSubscriber.reset_runtime
1086</div><div class="line"> self.db_runtime += db_rt_after_render
1087</div><div class="line"> runtime - db_rt_after_render
1088</div>
1089</pre>
1090</td>
1091 </tr>
1092 </table>
1093 </div>
1094 </div>
1095 <div class="source hidden" id="frame-source-29">
1096 <div class="info">
1097 Extracted source (around line <strong>#43</strong>):
1098 </div>
1099 <div class="data">
1100 <table cellpadding="0" cellspacing="0" class="lines">
1101 <tr>
1102 <td>
1103 <pre class="line_numbers">
1104<span>41</span>
1105<span>42</span>
1106<span>43</span>
1107<span>44</span>
1108<span>45</span>
1109<span>46</span>
1110 </pre>
1111 </td>
1112<td width="100%">
1113<pre>
1114<div class="line"> def render(*args)
1115</div><div class="line"> render_output = nil
1116</div><div class="line active"> self.view_runtime = cleanup_view_runtime do
1117</div><div class="line"> Benchmark.ms { render_output = super }
1118</div><div class="line"> end
1119</div><div class="line"> render_output
1120</div>
1121</pre>
1122</td>
1123 </tr>
1124 </table>
1125 </div>
1126 </div>
1127 <div class="source hidden" id="frame-source-30">
1128 <div class="info">
1129 Extracted source (around line <strong>#58</strong>):
1130 </div>
1131 <div class="data">
1132 <table cellpadding="0" cellspacing="0" class="lines">
1133 <tr>
1134 <td>
1135 <pre class="line_numbers">
1136<span>56</span>
1137<span>57</span>
1138<span>58</span>
1139<span>59</span>
1140<span>60</span>
1141<span>61</span>
1142 </pre>
1143 </td>
1144<td width="100%">
1145<pre>
1146<div class="line"> def post_comment
1147</div><div class="line"> comment = @post.comments.new(comment_params)
1148</div><div class="line active"> return render partial: 'api/comments/comment', locals: { comment: comment } if @post.save
1149</div><div class="line"> render_error_response(@post.errors.full_messages.to_sentence)
1150</div><div class="line"> end
1151</div><div class="line">
1152</div>
1153</pre>
1154</td>
1155 </tr>
1156 </table>
1157 </div>
1158 </div>
1159 <div class="source hidden" id="frame-source-31">
1160 <div class="info">
1161 Extracted source (around line <strong>#14</strong>):
1162 </div>
1163 <div class="data">
1164 <table cellpadding="0" cellspacing="0" class="lines">
1165 <tr>
1166 <td>
1167 <pre class="line_numbers">
1168<span>12</span>
1169<span>13</span>
1170<span>14</span>
1171<span>15</span>
1172<span>16</span>
1173<span>17</span>
1174 </pre>
1175 </td>
1176<td width="100%">
1177<pre>
1178<div class="line"> # Create comment
1179</div><div class="line"> def create
1180</div><div class="line active"> @post ? post_comment : reply_on_comment
1181</div><div class="line"> end
1182</div><div class="line">
1183</div><div class="line"> # Delete comment or reply
1184</div>
1185</pre>
1186</td>
1187 </tr>
1188 </table>
1189 </div>
1190 </div>
1191 <div class="source hidden" id="frame-source-32">
1192 <div class="info">
1193 Extracted source (around line <strong>#4</strong>):
1194 </div>
1195 <div class="data">
1196 <table cellpadding="0" cellspacing="0" class="lines">
1197 <tr>
1198 <td>
1199 <pre class="line_numbers">
1200<span>2</span>
1201<span>3</span>
1202<span>4</span>
1203<span>5</span>
1204<span>6</span>
1205<span>7</span>
1206 </pre>
1207 </td>
1208<td width="100%">
1209<pre>
1210<div class="line"> module BasicImplicitRender # :nodoc:
1211</div><div class="line"> def send_action(method, *args)
1212</div><div class="line active"> super.tap { default_render unless performed? }
1213</div><div class="line"> end
1214</div><div class="line">
1215</div><div class="line"> def default_render(*args)
1216</div>
1217</pre>
1218</td>
1219 </tr>
1220 </table>
1221 </div>
1222 </div>
1223 <div class="source hidden" id="frame-source-33">
1224 <div class="info">
1225 Extracted source (around line <strong>#186</strong>):
1226 </div>
1227 <div class="data">
1228 <table cellpadding="0" cellspacing="0" class="lines">
1229 <tr>
1230 <td>
1231 <pre class="line_numbers">
1232<span>184</span>
1233<span>185</span>
1234<span>186</span>
1235<span>187</span>
1236<span>188</span>
1237<span>189</span>
1238 </pre>
1239 </td>
1240<td width="100%">
1241<pre>
1242<div class="line"> # which is *not* necessarily the same as the action name.
1243</div><div class="line"> def process_action(method_name, *args)
1244</div><div class="line active"> send_action(method_name, *args)
1245</div><div class="line"> end
1246</div><div class="line">
1247</div><div class="line"> # Actually call the method associated with the action. Override
1248</div>
1249</pre>
1250</td>
1251 </tr>
1252 </table>
1253 </div>
1254 </div>
1255 <div class="source hidden" id="frame-source-34">
1256 <div class="info">
1257 Extracted source (around line <strong>#30</strong>):
1258 </div>
1259 <div class="data">
1260 <table cellpadding="0" cellspacing="0" class="lines">
1261 <tr>
1262 <td>
1263 <pre class="line_numbers">
1264<span>28</span>
1265<span>29</span>
1266<span>30</span>
1267<span>31</span>
1268<span>32</span>
1269<span>33</span>
1270 </pre>
1271 </td>
1272<td width="100%">
1273<pre>
1274<div class="line"> def process_action(*) #:nodoc:
1275</div><div class="line"> self.formats = request.formats.map(&:ref).compact
1276</div><div class="line active"> super
1277</div><div class="line"> end
1278</div><div class="line">
1279</div><div class="line"> # Check for double render errors and set the content_type after rendering.
1280</div>
1281</pre>
1282</td>
1283 </tr>
1284 </table>
1285 </div>
1286 </div>
1287 <div class="source hidden" id="frame-source-35">
1288 <div class="info">
1289 Extracted source (around line <strong>#20</strong>):
1290 </div>
1291 <div class="data">
1292 <table cellpadding="0" cellspacing="0" class="lines">
1293 <tr>
1294 <td>
1295 <pre class="line_numbers">
1296<span>18</span>
1297<span>19</span>
1298<span>20</span>
1299<span>21</span>
1300<span>22</span>
1301<span>23</span>
1302 </pre>
1303 </td>
1304<td width="100%">
1305<pre>
1306<div class="line"> def process_action(*args)
1307</div><div class="line"> run_callbacks(:process_action) do
1308</div><div class="line active"> super
1309</div><div class="line"> end
1310</div><div class="line"> end
1311</div><div class="line">
1312</div>
1313</pre>
1314</td>
1315 </tr>
1316 </table>
1317 </div>
1318 </div>
1319 <div class="source hidden" id="frame-source-36">
1320 <div class="info">
1321 Extracted source (around line <strong>#131</strong>):
1322 </div>
1323 <div class="data">
1324 <table cellpadding="0" cellspacing="0" class="lines">
1325 <tr>
1326 <td>
1327 <pre class="line_numbers">
1328<span>129</span>
1329<span>130</span>
1330<span>131</span>
1331<span>132</span>
1332<span>133</span>
1333<span>134</span>
1334 </pre>
1335 </td>
1336<td width="100%">
1337<pre>
1338<div class="line"> if next_sequence.final?
1339</div><div class="line"> next_sequence.invoke_before(env)
1340</div><div class="line active"> env.value = !env.halted && (!block_given? || yield)
1341</div><div class="line"> next_sequence.invoke_after(env)
1342</div><div class="line"> env.value
1343</div><div class="line"> else
1344</div>
1345</pre>
1346</td>
1347 </tr>
1348 </table>
1349 </div>
1350 </div>
1351 <div class="source hidden" id="frame-source-37">
1352 <div class="info">
1353 Extracted source (around line <strong>#19</strong>):
1354 </div>
1355 <div class="data">
1356 <table cellpadding="0" cellspacing="0" class="lines">
1357 <tr>
1358 <td>
1359 <pre class="line_numbers">
1360<span>17</span>
1361<span>18</span>
1362<span>19</span>
1363<span>20</span>
1364<span>21</span>
1365<span>22</span>
1366 </pre>
1367 </td>
1368<td width="100%">
1369<pre>
1370<div class="line"> # process_action callbacks around the normal behavior.
1371</div><div class="line"> def process_action(*args)
1372</div><div class="line active"> run_callbacks(:process_action) do
1373</div><div class="line"> super
1374</div><div class="line"> end
1375</div><div class="line"> end
1376</div>
1377</pre>
1378</td>
1379 </tr>
1380 </table>
1381 </div>
1382 </div>
1383 <div class="source hidden" id="frame-source-38">
1384 <div class="info">
1385 Extracted source (around line <strong>#20</strong>):
1386 </div>
1387 <div class="data">
1388 <table cellpadding="0" cellspacing="0" class="lines">
1389 <tr>
1390 <td>
1391 <pre class="line_numbers">
1392<span>18</span>
1393<span>19</span>
1394<span>20</span>
1395<span>21</span>
1396<span>22</span>
1397<span>23</span>
1398 </pre>
1399 </td>
1400<td width="100%">
1401<pre>
1402<div class="line"> private
1403</div><div class="line"> def process_action(*args)
1404</div><div class="line active"> super
1405</div><div class="line"> rescue Exception => exception
1406</div><div class="line"> request.env["action_dispatch.show_detailed_exceptions"] ||= show_detailed_exceptions?
1407</div><div class="line"> rescue_with_handler(exception) || raise
1408</div>
1409</pre>
1410</td>
1411 </tr>
1412 </table>
1413 </div>
1414 </div>
1415 <div class="source hidden" id="frame-source-39">
1416 <div class="info">
1417 Extracted source (around line <strong>#32</strong>):
1418 </div>
1419 <div class="data">
1420 <table cellpadding="0" cellspacing="0" class="lines">
1421 <tr>
1422 <td>
1423 <pre class="line_numbers">
1424<span>30</span>
1425<span>31</span>
1426<span>32</span>
1427<span>33</span>
1428<span>34</span>
1429<span>35</span>
1430 </pre>
1431 </td>
1432<td width="100%">
1433<pre>
1434<div class="line"> ActiveSupport::Notifications.instrument("process_action.action_controller", raw_payload) do |payload|
1435</div><div class="line"> begin
1436</div><div class="line active"> result = super
1437</div><div class="line"> payload[:status] = response.status
1438</div><div class="line"> result
1439</div><div class="line"> ensure
1440</div>
1441</pre>
1442</td>
1443 </tr>
1444 </table>
1445 </div>
1446 </div>
1447 <div class="source hidden" id="frame-source-40">
1448 <div class="info">
1449 Extracted source (around line <strong>#166</strong>):
1450 </div>
1451 <div class="data">
1452 <table cellpadding="0" cellspacing="0" class="lines">
1453 <tr>
1454 <td>
1455 <pre class="line_numbers">
1456<span>164</span>
1457<span>165</span>
1458<span>166</span>
1459<span>167</span>
1460<span>168</span>
1461<span>169</span>
1462 </pre>
1463 </td>
1464<td width="100%">
1465<pre>
1466<div class="line"> def instrument(name, payload = {})
1467</div><div class="line"> if notifier.listening?(name)
1468</div><div class="line active"> instrumenter.instrument(name, payload) { yield payload if block_given? }
1469</div><div class="line"> else
1470</div><div class="line"> yield payload if block_given?
1471</div><div class="line"> end
1472</div>
1473</pre>
1474</td>
1475 </tr>
1476 </table>
1477 </div>
1478 </div>
1479 <div class="source hidden" id="frame-source-41">
1480 <div class="info">
1481 Extracted source (around line <strong>#21</strong>):
1482 </div>
1483 <div class="data">
1484 <table cellpadding="0" cellspacing="0" class="lines">
1485 <tr>
1486 <td>
1487 <pre class="line_numbers">
1488<span>19</span>
1489<span>20</span>
1490<span>21</span>
1491<span>22</span>
1492<span>23</span>
1493<span>24</span>
1494 </pre>
1495 </td>
1496<td width="100%">
1497<pre>
1498<div class="line"> listeners_state = start name, payload
1499</div><div class="line"> begin
1500</div><div class="line active"> yield payload
1501</div><div class="line"> rescue Exception => e
1502</div><div class="line"> payload[:exception] = [e.class.name, e.message]
1503</div><div class="line"> payload[:exception_object] = e
1504</div>
1505</pre>
1506</td>
1507 </tr>
1508 </table>
1509 </div>
1510 </div>
1511 <div class="source hidden" id="frame-source-42">
1512 <div class="info">
1513 Extracted source (around line <strong>#166</strong>):
1514 </div>
1515 <div class="data">
1516 <table cellpadding="0" cellspacing="0" class="lines">
1517 <tr>
1518 <td>
1519 <pre class="line_numbers">
1520<span>164</span>
1521<span>165</span>
1522<span>166</span>
1523<span>167</span>
1524<span>168</span>
1525<span>169</span>
1526 </pre>
1527 </td>
1528<td width="100%">
1529<pre>
1530<div class="line"> def instrument(name, payload = {})
1531</div><div class="line"> if notifier.listening?(name)
1532</div><div class="line active"> instrumenter.instrument(name, payload) { yield payload if block_given? }
1533</div><div class="line"> else
1534</div><div class="line"> yield payload if block_given?
1535</div><div class="line"> end
1536</div>
1537</pre>
1538</td>
1539 </tr>
1540 </table>
1541 </div>
1542 </div>
1543 <div class="source hidden" id="frame-source-43">
1544 <div class="info">
1545 Extracted source (around line <strong>#30</strong>):
1546 </div>
1547 <div class="data">
1548 <table cellpadding="0" cellspacing="0" class="lines">
1549 <tr>
1550 <td>
1551 <pre class="line_numbers">
1552<span>28</span>
1553<span>29</span>
1554<span>30</span>
1555<span>31</span>
1556<span>32</span>
1557<span>33</span>
1558 </pre>
1559 </td>
1560<td width="100%">
1561<pre>
1562<div class="line"> ActiveSupport::Notifications.instrument("start_processing.action_controller", raw_payload.dup)
1563</div><div class="line">
1564</div><div class="line active"> ActiveSupport::Notifications.instrument("process_action.action_controller", raw_payload) do |payload|
1565</div><div class="line"> begin
1566</div><div class="line"> result = super
1567</div><div class="line"> payload[:status] = response.status
1568</div>
1569</pre>
1570</td>
1571 </tr>
1572 </table>
1573 </div>
1574 </div>
1575 <div class="source hidden" id="frame-source-44">
1576 <div class="info">
1577 Extracted source (around line <strong>#252</strong>):
1578 </div>
1579 <div class="data">
1580 <table cellpadding="0" cellspacing="0" class="lines">
1581 <tr>
1582 <td>
1583 <pre class="line_numbers">
1584<span>250</span>
1585<span>251</span>
1586<span>252</span>
1587<span>253</span>
1588<span>254</span>
1589<span>255</span>
1590 </pre>
1591 </td>
1592<td width="100%">
1593<pre>
1594<div class="line"> request.filtered_parameters.merge! wrapped_filtered_hash
1595</div><div class="line"> end
1596</div><div class="line active"> super
1597</div><div class="line"> end
1598</div><div class="line">
1599</div><div class="line"> private
1600</div>
1601</pre>
1602</td>
1603 </tr>
1604 </table>
1605 </div>
1606 </div>
1607 <div class="source hidden" id="frame-source-45">
1608 <div class="info">
1609 Extracted source (around line <strong>#22</strong>):
1610 </div>
1611 <div class="data">
1612 <table cellpadding="0" cellspacing="0" class="lines">
1613 <tr>
1614 <td>
1615 <pre class="line_numbers">
1616<span>20</span>
1617<span>21</span>
1618<span>22</span>
1619<span>23</span>
1620<span>24</span>
1621<span>25</span>
1622 </pre>
1623 </td>
1624<td width="100%">
1625<pre>
1626<div class="line"> # and it won't be cleaned up by the method below.
1627</div><div class="line"> ActiveRecord::LogSubscriber.reset_runtime
1628</div><div class="line active"> super
1629</div><div class="line"> end
1630</div><div class="line">
1631</div><div class="line"> def cleanup_view_runtime
1632</div>
1633</pre>
1634</td>
1635 </tr>
1636 </table>
1637 </div>
1638 </div>
1639 <div class="source hidden" id="frame-source-46">
1640 <div class="info">
1641 Extracted source (around line <strong>#124</strong>):
1642 </div>
1643 <div class="data">
1644 <table cellpadding="0" cellspacing="0" class="lines">
1645 <tr>
1646 <td>
1647 <pre class="line_numbers">
1648<span>122</span>
1649<span>123</span>
1650<span>124</span>
1651<span>125</span>
1652<span>126</span>
1653<span>127</span>
1654 </pre>
1655 </td>
1656<td width="100%">
1657<pre>
1658<div class="line"> @_response_body = nil
1659</div><div class="line">
1660</div><div class="line active"> process_action(action_name, *args)
1661</div><div class="line"> end
1662</div><div class="line">
1663</div><div class="line"> # Delegates to the class' ::controller_path
1664</div>
1665</pre>
1666</td>
1667 </tr>
1668 </table>
1669 </div>
1670 </div>
1671 <div class="source hidden" id="frame-source-47">
1672 <div class="info">
1673 Extracted source (around line <strong>#30</strong>):
1674 </div>
1675 <div class="data">
1676 <table cellpadding="0" cellspacing="0" class="lines">
1677 <tr>
1678 <td>
1679 <pre class="line_numbers">
1680<span>28</span>
1681<span>29</span>
1682<span>30</span>
1683<span>31</span>
1684<span>32</span>
1685<span>33</span>
1686 </pre>
1687 </td>
1688<td width="100%">
1689<pre>
1690<div class="line"> def process(*) #:nodoc:
1691</div><div class="line"> old_config, I18n.config = I18n.config, I18nProxy.new(I18n.config, lookup_context)
1692</div><div class="line active"> super
1693</div><div class="line"> ensure
1694</div><div class="line"> I18n.config = old_config
1695</div><div class="line"> end
1696</div>
1697</pre>
1698</td>
1699 </tr>
1700 </table>
1701 </div>
1702 </div>
1703 <div class="source hidden" id="frame-source-48">
1704 <div class="info">
1705 Extracted source (around line <strong>#189</strong>):
1706 </div>
1707 <div class="data">
1708 <table cellpadding="0" cellspacing="0" class="lines">
1709 <tr>
1710 <td>
1711 <pre class="line_numbers">
1712<span>187</span>
1713<span>188</span>
1714<span>189</span>
1715<span>190</span>
1716<span>191</span>
1717<span>192</span>
1718 </pre>
1719 </td>
1720<td width="100%">
1721<pre>
1722<div class="line"> set_request!(request)
1723</div><div class="line"> set_response!(response)
1724</div><div class="line active"> process(name)
1725</div><div class="line"> request.commit_flash
1726</div><div class="line"> to_a
1727</div><div class="line"> end
1728</div>
1729</pre>
1730</td>
1731 </tr>
1732 </table>
1733 </div>
1734 </div>
1735 <div class="source hidden" id="frame-source-49">
1736 <div class="info">
1737 Extracted source (around line <strong>#253</strong>):
1738 </div>
1739 <div class="data">
1740 <table cellpadding="0" cellspacing="0" class="lines">
1741 <tr>
1742 <td>
1743 <pre class="line_numbers">
1744<span>251</span>
1745<span>252</span>
1746<span>253</span>
1747<span>254</span>
1748<span>255</span>
1749<span>256</span>
1750 </pre>
1751 </td>
1752<td width="100%">
1753<pre>
1754<div class="line"> middleware_stack.build(name) { |env| new.dispatch(name, req, res) }.call req.env
1755</div><div class="line"> else
1756</div><div class="line active"> new.dispatch(name, req, res)
1757</div><div class="line"> end
1758</div><div class="line"> end
1759</div><div class="line"> end
1760</div>
1761</pre>
1762</td>
1763 </tr>
1764 </table>
1765 </div>
1766 </div>
1767 <div class="source hidden" id="frame-source-50">
1768 <div class="info">
1769 Extracted source (around line <strong>#49</strong>):
1770 </div>
1771 <div class="data">
1772 <table cellpadding="0" cellspacing="0" class="lines">
1773 <tr>
1774 <td>
1775 <pre class="line_numbers">
1776<span>47</span>
1777<span>48</span>
1778<span>49</span>
1779<span>50</span>
1780<span>51</span>
1781<span>52</span>
1782 </pre>
1783 </td>
1784<td width="100%">
1785<pre>
1786<div class="line">
1787</div><div class="line"> def dispatch(controller, action, req, res)
1788</div><div class="line active"> controller.dispatch(action, req, res)
1789</div><div class="line"> end
1790</div><div class="line"> end
1791</div><div class="line">
1792</div>
1793</pre>
1794</td>
1795 </tr>
1796 </table>
1797 </div>
1798 </div>
1799 <div class="source hidden" id="frame-source-51">
1800 <div class="info">
1801 Extracted source (around line <strong>#31</strong>):
1802 </div>
1803 <div class="data">
1804 <table cellpadding="0" cellspacing="0" class="lines">
1805 <tr>
1806 <td>
1807 <pre class="line_numbers">
1808<span>29</span>
1809<span>30</span>
1810<span>31</span>
1811<span>32</span>
1812<span>33</span>
1813<span>34</span>
1814 </pre>
1815 </td>
1816<td width="100%">
1817<pre>
1818<div class="line"> controller = controller req
1819</div><div class="line"> res = controller.make_response! req
1820</div><div class="line active"> dispatch(controller, params[:action], req, res)
1821</div><div class="line"> rescue ActionController::RoutingError
1822</div><div class="line"> if @raise_on_name_error
1823</div><div class="line"> raise
1824</div>
1825</pre>
1826</td>
1827 </tr>
1828 </table>
1829 </div>
1830 </div>
1831 <div class="source hidden" id="frame-source-52">
1832 <div class="info">
1833 Extracted source (around line <strong>#50</strong>):
1834 </div>
1835 <div class="data">
1836 <table cellpadding="0" cellspacing="0" class="lines">
1837 <tr>
1838 <td>
1839 <pre class="line_numbers">
1840<span>48</span>
1841<span>49</span>
1842<span>50</span>
1843<span>51</span>
1844<span>52</span>
1845<span>53</span>
1846 </pre>
1847 </td>
1848<td width="100%">
1849<pre>
1850<div class="line"> req.path_parameters = set_params.merge parameters
1851</div><div class="line">
1852</div><div class="line active"> status, headers, body = route.app.serve(req)
1853</div><div class="line">
1854</div><div class="line"> if "pass" == headers["X-Cascade"]
1855</div><div class="line"> req.script_name = script_name
1856</div>
1857</pre>
1858</td>
1859 </tr>
1860 </table>
1861 </div>
1862 </div>
1863 <div class="source hidden" id="frame-source-53">
1864 <div class="info">
1865 Extracted source (around line <strong>#33</strong>):
1866 </div>
1867 <div class="data">
1868 <table cellpadding="0" cellspacing="0" class="lines">
1869 <tr>
1870 <td>
1871 <pre class="line_numbers">
1872<span>31</span>
1873<span>32</span>
1874<span>33</span>
1875<span>34</span>
1876<span>35</span>
1877<span>36</span>
1878 </pre>
1879 </td>
1880<td width="100%">
1881<pre>
1882<div class="line">
1883</div><div class="line"> def serve(req)
1884</div><div class="line active"> find_routes(req).each do |match, parameters, route|
1885</div><div class="line"> set_params = req.path_parameters
1886</div><div class="line"> path_info = req.path_info
1887</div><div class="line"> script_name = req.script_name
1888</div>
1889</pre>
1890</td>
1891 </tr>
1892 </table>
1893 </div>
1894 </div>
1895 <div class="source hidden" id="frame-source-54">
1896 <div class="info">
1897 Extracted source (around line <strong>#33</strong>):
1898 </div>
1899 <div class="data">
1900 <table cellpadding="0" cellspacing="0" class="lines">
1901 <tr>
1902 <td>
1903 <pre class="line_numbers">
1904<span>31</span>
1905<span>32</span>
1906<span>33</span>
1907<span>34</span>
1908<span>35</span>
1909<span>36</span>
1910 </pre>
1911 </td>
1912<td width="100%">
1913<pre>
1914<div class="line">
1915</div><div class="line"> def serve(req)
1916</div><div class="line active"> find_routes(req).each do |match, parameters, route|
1917</div><div class="line"> set_params = req.path_parameters
1918</div><div class="line"> path_info = req.path_info
1919</div><div class="line"> script_name = req.script_name
1920</div>
1921</pre>
1922</td>
1923 </tr>
1924 </table>
1925 </div>
1926 </div>
1927 <div class="source hidden" id="frame-source-55">
1928 <div class="info">
1929 Extracted source (around line <strong>#844</strong>):
1930 </div>
1931 <div class="data">
1932 <table cellpadding="0" cellspacing="0" class="lines">
1933 <tr>
1934 <td>
1935 <pre class="line_numbers">
1936<span>842</span>
1937<span>843</span>
1938<span>844</span>
1939<span>845</span>
1940<span>846</span>
1941<span>847</span>
1942 </pre>
1943 </td>
1944<td width="100%">
1945<pre>
1946<div class="line"> req = make_request(env)
1947</div><div class="line"> req.path_info = Journey::Router::Utils.normalize_path(req.path_info)
1948</div><div class="line active"> @router.serve(req)
1949</div><div class="line"> end
1950</div><div class="line">
1951</div><div class="line"> def recognize_path(path, environment = {})
1952</div>
1953</pre>
1954</td>
1955 </tr>
1956 </table>
1957 </div>
1958 </div>
1959 <div class="source hidden" id="frame-source-56">
1960 <div class="info">
1961 Extracted source (around line <strong>#14</strong>):
1962 </div>
1963 <div class="data">
1964 <table cellpadding="0" cellspacing="0" class="lines">
1965 <tr>
1966 <td>
1967 <pre class="line_numbers">
1968<span>12</span>
1969<span>13</span>
1970<span>14</span>
1971<span>15</span>
1972<span>16</span>
1973<span>17</span>
1974 </pre>
1975 </td>
1976<td width="100%">
1977<pre>
1978<div class="line"> return @app.call(env) unless Bullet.enable?
1979</div><div class="line"> Bullet.start_request
1980</div><div class="line active"> status, headers, response = @app.call(env)
1981</div><div class="line">
1982</div><div class="line"> response_body = nil
1983</div><div class="line"> if Bullet.notification?
1984</div>
1985</pre>
1986</td>
1987 </tr>
1988 </table>
1989 </div>
1990 </div>
1991 <div class="source hidden" id="frame-source-57">
1992 <div class="info">
1993 Extracted source (around line <strong>#36</strong>):
1994 </div>
1995 <div class="data">
1996 <table cellpadding="0" cellspacing="0" class="lines">
1997 <tr>
1998 <td>
1999 <pre class="line_numbers">
2000<span>34</span>
2001<span>35</span>
2002<span>36</span>
2003<span>37</span>
2004<span>38</span>
2005<span>39</span>
2006 </pre>
2007 </td>
2008<td width="100%">
2009<pre>
2010<div class="line"> env['warden'] = Proxy.new(env, self)
2011</div><div class="line"> result = catch(:warden) do
2012</div><div class="line active"> @app.call(env)
2013</div><div class="line"> end
2014</div><div class="line">
2015</div><div class="line"> result ||= {}
2016</div>
2017</pre>
2018</td>
2019 </tr>
2020 </table>
2021 </div>
2022 </div>
2023 <div class="source hidden" id="frame-source-58">
2024 <div class="info">
2025 Extracted source (around line <strong>#35</strong>):
2026 </div>
2027 <div class="data">
2028 <table cellpadding="0" cellspacing="0" class="lines">
2029 <tr>
2030 <td>
2031 <pre class="line_numbers">
2032<span>33</span>
2033<span>34</span>
2034<span>35</span>
2035<span>36</span>
2036<span>37</span>
2037<span>38</span>
2038 </pre>
2039 </td>
2040<td width="100%">
2041<pre>
2042<div class="line">
2043</div><div class="line"> env['warden'] = Proxy.new(env, self)
2044</div><div class="line active"> result = catch(:warden) do
2045</div><div class="line"> @app.call(env)
2046</div><div class="line"> end
2047</div><div class="line">
2048</div>
2049</pre>
2050</td>
2051 </tr>
2052 </table>
2053 </div>
2054 </div>
2055 <div class="source hidden" id="frame-source-59">
2056 <div class="info">
2057 Extracted source (around line <strong>#35</strong>):
2058 </div>
2059 <div class="data">
2060 <table cellpadding="0" cellspacing="0" class="lines">
2061 <tr>
2062 <td>
2063 <pre class="line_numbers">
2064<span>33</span>
2065<span>34</span>
2066<span>35</span>
2067<span>36</span>
2068<span>37</span>
2069<span>38</span>
2070 </pre>
2071 </td>
2072<td width="100%">
2073<pre>
2074<div class="line">
2075</div><div class="line"> env['warden'] = Proxy.new(env, self)
2076</div><div class="line active"> result = catch(:warden) do
2077</div><div class="line"> @app.call(env)
2078</div><div class="line"> end
2079</div><div class="line">
2080</div>
2081</pre>
2082</td>
2083 </tr>
2084 </table>
2085 </div>
2086 </div>
2087 <div class="source hidden" id="frame-source-60">
2088 <div class="info">
2089 Extracted source (around line <strong>#25</strong>):
2090 </div>
2091 <div class="data">
2092 <table cellpadding="0" cellspacing="0" class="lines">
2093 <tr>
2094 <td>
2095 <pre class="line_numbers">
2096<span>23</span>
2097<span>24</span>
2098<span>25</span>
2099<span>26</span>
2100<span>27</span>
2101<span>28</span>
2102 </pre>
2103 </td>
2104<td width="100%">
2105<pre>
2106<div class="line">
2107</div><div class="line"> def call(env)
2108</div><div class="line active"> status, headers, body = @app.call(env)
2109</div><div class="line">
2110</div><div class="line"> if etag_status?(status) && etag_body?(body) && !skip_caching?(headers)
2111</div><div class="line"> original_body = body
2112</div>
2113</pre>
2114</td>
2115 </tr>
2116 </table>
2117 </div>
2118 </div>
2119 <div class="source hidden" id="frame-source-61">
2120 <div class="info">
2121 Extracted source (around line <strong>#38</strong>):
2122 </div>
2123 <div class="data">
2124 <table cellpadding="0" cellspacing="0" class="lines">
2125 <tr>
2126 <td>
2127 <pre class="line_numbers">
2128<span>36</span>
2129<span>37</span>
2130<span>38</span>
2131<span>39</span>
2132<span>40</span>
2133<span>41</span>
2134 </pre>
2135 </td>
2136<td width="100%">
2137<pre>
2138<div class="line"> [status, headers, body]
2139</div><div class="line"> else
2140</div><div class="line active"> @app.call(env)
2141</div><div class="line"> end
2142</div><div class="line"> end
2143</div><div class="line">
2144</div>
2145</pre>
2146</td>
2147 </tr>
2148 </table>
2149 </div>
2150 </div>
2151 <div class="source hidden" id="frame-source-62">
2152 <div class="info">
2153 Extracted source (around line <strong>#12</strong>):
2154 </div>
2155 <div class="data">
2156 <table cellpadding="0" cellspacing="0" class="lines">
2157 <tr>
2158 <td>
2159 <pre class="line_numbers">
2160<span>10</span>
2161<span>11</span>
2162<span>12</span>
2163<span>13</span>
2164<span>14</span>
2165<span>15</span>
2166 </pre>
2167 </td>
2168<td width="100%">
2169<pre>
2170<div class="line">
2171</div><div class="line"> def call(env)
2172</div><div class="line active"> status, headers, body = @app.call(env)
2173</div><div class="line">
2174</div><div class="line"> if env[REQUEST_METHOD] == HEAD
2175</div><div class="line"> [
2176</div>
2177</pre>
2178</td>
2179 </tr>
2180 </table>
2181 </div>
2182 </div>
2183 <div class="source hidden" id="frame-source-63">
2184 <div class="info">
2185 Extracted source (around line <strong>#232</strong>):
2186 </div>
2187 <div class="data">
2188 <table cellpadding="0" cellspacing="0" class="lines">
2189 <tr>
2190 <td>
2191 <pre class="line_numbers">
2192<span>230</span>
2193<span>231</span>
2194<span>232</span>
2195<span>233</span>
2196<span>234</span>
2197<span>235</span>
2198 </pre>
2199 </td>
2200<td width="100%">
2201<pre>
2202<div class="line"> req = make_request env
2203</div><div class="line"> prepare_session(req)
2204</div><div class="line active"> status, headers, body = app.call(req.env)
2205</div><div class="line"> res = Rack::Response::Raw.new status, headers
2206</div><div class="line"> commit_session(req, res)
2207</div><div class="line"> [status, headers, body]
2208</div>
2209</pre>
2210</td>
2211 </tr>
2212 </table>
2213 </div>
2214 </div>
2215 <div class="source hidden" id="frame-source-64">
2216 <div class="info">
2217 Extracted source (around line <strong>#226</strong>):
2218 </div>
2219 <div class="data">
2220 <table cellpadding="0" cellspacing="0" class="lines">
2221 <tr>
2222 <td>
2223 <pre class="line_numbers">
2224<span>224</span>
2225<span>225</span>
2226<span>226</span>
2227<span>227</span>
2228<span>228</span>
2229<span>229</span>
2230 </pre>
2231 </td>
2232<td width="100%">
2233<pre>
2234<div class="line">
2235</div><div class="line"> def call(env)
2236</div><div class="line active"> context(env)
2237</div><div class="line"> end
2238</div><div class="line">
2239</div><div class="line"> def context(env, app=@app)
2240</div>
2241</pre>
2242</td>
2243 </tr>
2244 </table>
2245 </div>
2246 </div>
2247 <div class="source hidden" id="frame-source-65">
2248 <div class="info">
2249 Extracted source (around line <strong>#613</strong>):
2250 </div>
2251 <div class="data">
2252 <table cellpadding="0" cellspacing="0" class="lines">
2253 <tr>
2254 <td>
2255 <pre class="line_numbers">
2256<span>611</span>
2257<span>612</span>
2258<span>613</span>
2259<span>614</span>
2260<span>615</span>
2261<span>616</span>
2262 </pre>
2263 </td>
2264<td width="100%">
2265<pre>
2266<div class="line"> request = ActionDispatch::Request.new env
2267</div><div class="line">
2268</div><div class="line active"> status, headers, body = @app.call(env)
2269</div><div class="line">
2270</div><div class="line"> if request.have_cookie_jar?
2271</div><div class="line"> cookie_jar = request.cookie_jar
2272</div>
2273</pre>
2274</td>
2275 </tr>
2276 </table>
2277 </div>
2278 </div>
2279 <div class="source hidden" id="frame-source-66">
2280 <div class="info">
2281 Extracted source (around line <strong>#556</strong>):
2282 </div>
2283 <div class="data">
2284 <table cellpadding="0" cellspacing="0" class="lines">
2285 <tr>
2286 <td>
2287 <pre class="line_numbers">
2288<span>554</span>
2289<span>555</span>
2290<span>556</span>
2291<span>557</span>
2292<span>558</span>
2293<span>559</span>
2294 </pre>
2295 </td>
2296<td width="100%">
2297<pre>
2298<div class="line"> @last_check = mtime
2299</div><div class="line"> end
2300</div><div class="line active"> @app.call(env)
2301</div><div class="line"> end
2302</div><div class="line">
2303</div><div class="line"> private
2304</div>
2305</pre>
2306</td>
2307 </tr>
2308 </table>
2309 </div>
2310 </div>
2311 <div class="source hidden" id="frame-source-67">
2312 <div class="info">
2313 Extracted source (around line <strong>#26</strong>):
2314 </div>
2315 <div class="data">
2316 <table cellpadding="0" cellspacing="0" class="lines">
2317 <tr>
2318 <td>
2319 <pre class="line_numbers">
2320<span>24</span>
2321<span>25</span>
2322<span>26</span>
2323<span>27</span>
2324<span>28</span>
2325<span>29</span>
2326 </pre>
2327 </td>
2328<td width="100%">
2329<pre>
2330<div class="line"> result = run_callbacks :call do
2331</div><div class="line"> begin
2332</div><div class="line active"> @app.call(env)
2333</div><div class="line"> rescue => error
2334</div><div class="line"> end
2335</div><div class="line"> end
2336</div>
2337</pre>
2338</td>
2339 </tr>
2340 </table>
2341 </div>
2342 </div>
2343 <div class="source hidden" id="frame-source-68">
2344 <div class="info">
2345 Extracted source (around line <strong>#97</strong>):
2346 </div>
2347 <div class="data">
2348 <table cellpadding="0" cellspacing="0" class="lines">
2349 <tr>
2350 <td>
2351 <pre class="line_numbers">
2352<span>95</span>
2353<span>96</span>
2354<span>97</span>
2355<span>98</span>
2356<span>99</span>
2357<span>100</span>
2358 </pre>
2359 </td>
2360<td width="100%">
2361<pre>
2362<div class="line">
2363</div><div class="line"> if callbacks.empty?
2364</div><div class="line active"> yield if block_given?
2365</div><div class="line"> else
2366</div><div class="line"> env = Filters::Environment.new(self, false, nil)
2367</div><div class="line"> next_sequence = callbacks.compile
2368</div>
2369</pre>
2370</td>
2371 </tr>
2372 </table>
2373 </div>
2374 </div>
2375 <div class="source hidden" id="frame-source-69">
2376 <div class="info">
2377 Extracted source (around line <strong>#24</strong>):
2378 </div>
2379 <div class="data">
2380 <table cellpadding="0" cellspacing="0" class="lines">
2381 <tr>
2382 <td>
2383 <pre class="line_numbers">
2384<span>22</span>
2385<span>23</span>
2386<span>24</span>
2387<span>25</span>
2388<span>26</span>
2389<span>27</span>
2390 </pre>
2391 </td>
2392<td width="100%">
2393<pre>
2394<div class="line"> def call(env)
2395</div><div class="line"> error = nil
2396</div><div class="line active"> result = run_callbacks :call do
2397</div><div class="line"> begin
2398</div><div class="line"> @app.call(env)
2399</div><div class="line"> rescue => error
2400</div>
2401</pre>
2402</td>
2403 </tr>
2404 </table>
2405 </div>
2406 </div>
2407 <div class="source hidden" id="frame-source-70">
2408 <div class="info">
2409 Extracted source (around line <strong>#12</strong>):
2410 </div>
2411 <div class="data">
2412 <table cellpadding="0" cellspacing="0" class="lines">
2413 <tr>
2414 <td>
2415 <pre class="line_numbers">
2416<span>10</span>
2417<span>11</span>
2418<span>12</span>
2419<span>13</span>
2420<span>14</span>
2421<span>15</span>
2422 </pre>
2423 </td>
2424<td width="100%">
2425<pre>
2426<div class="line"> state = @executor.run!
2427</div><div class="line"> begin
2428</div><div class="line active"> response = @app.call(env)
2429</div><div class="line"> returned = response << ::Rack::BodyProxy.new(response.pop) { state.complete! }
2430</div><div class="line"> ensure
2431</div><div class="line"> state.complete! unless returned
2432</div>
2433</pre>
2434</td>
2435 </tr>
2436 </table>
2437 </div>
2438 </div>
2439 <div class="source hidden" id="frame-source-71">
2440 <div class="info">
2441 Extracted source (around line <strong>#24</strong>):
2442 </div>
2443 <div class="data">
2444 <table cellpadding="0" cellspacing="0" class="lines">
2445 <tr>
2446 <td>
2447 <pre class="line_numbers">
2448<span>22</span>
2449<span>23</span>
2450<span>24</span>
2451<span>25</span>
2452<span>26</span>
2453<span>27</span>
2454 </pre>
2455 </td>
2456<td width="100%">
2457<pre>
2458<div class="line"> Rollbar.scoped(scope) do
2459</div><div class="line"> begin
2460</div><div class="line active"> response = @app.call(env)
2461</div><div class="line">
2462</div><div class="line"> if (framework_exception = env['action_dispatch.exception'])
2463</div><div class="line"> report_exception_to_rollbar(env, framework_exception)
2464</div>
2465</pre>
2466</td>
2467 </tr>
2468 </table>
2469 </div>
2470 </div>
2471 <div class="source hidden" id="frame-source-72">
2472 <div class="info">
2473 Extracted source (around line <strong>#146</strong>):
2474 </div>
2475 <div class="data">
2476 <table cellpadding="0" cellspacing="0" class="lines">
2477 <tr>
2478 <td>
2479 <pre class="line_numbers">
2480<span>144</span>
2481<span>145</span>
2482<span>146</span>
2483<span>147</span>
2484<span>148</span>
2485<span>149</span>
2486 </pre>
2487 </td>
2488<td width="100%">
2489<pre>
2490<div class="line"> self.notifier = old_notifier.scope(options, config_overrides)
2491</div><div class="line">
2492</div><div class="line active"> result = yield
2493</div><div class="line"> result
2494</div><div class="line"> ensure
2495</div><div class="line"> self.notifier = old_notifier
2496</div>
2497</pre>
2498</td>
2499 </tr>
2500 </table>
2501 </div>
2502 </div>
2503 <div class="source hidden" id="frame-source-73">
2504 <div class="info">
2505 Extracted source (around line <strong>#22</strong>):
2506 </div>
2507 <div class="data">
2508 <table cellpadding="0" cellspacing="0" class="lines">
2509 <tr>
2510 <td>
2511 <pre class="line_numbers">
2512<span>20</span>
2513<span>21</span>
2514<span>22</span>
2515<span>23</span>
2516<span>24</span>
2517<span>25</span>
2518 </pre>
2519 </td>
2520<td width="100%">
2521<pre>
2522<div class="line"> env['rollbar.scope'] = scope = fetch_scope(env)
2523</div><div class="line">
2524</div><div class="line active"> Rollbar.scoped(scope) do
2525</div><div class="line"> begin
2526</div><div class="line"> response = @app.call(env)
2527</div><div class="line">
2528</div>
2529</pre>
2530</td>
2531 </tr>
2532 </table>
2533 </div>
2534 </div>
2535 <div class="source hidden" id="frame-source-74">
2536 <div class="info">
2537 Extracted source (around line <strong>#59</strong>):
2538 </div>
2539 <div class="data">
2540 <table cellpadding="0" cellspacing="0" class="lines">
2541 <tr>
2542 <td>
2543 <pre class="line_numbers">
2544<span>57</span>
2545<span>58</span>
2546<span>59</span>
2547<span>60</span>
2548<span>61</span>
2549<span>62</span>
2550 </pre>
2551 </td>
2552<td width="100%">
2553<pre>
2554<div class="line"> def call(env)
2555</div><div class="line"> request = ActionDispatch::Request.new env
2556</div><div class="line active"> _, headers, body = response = @app.call(env)
2557</div><div class="line">
2558</div><div class="line"> if headers["X-Cascade"] == "pass"
2559</div><div class="line"> body.close if body.respond_to?(:close)
2560</div>
2561</pre>
2562</td>
2563 </tr>
2564 </table>
2565 </div>
2566 </div>
2567 <div class="source hidden" id="frame-source-75">
2568 <div class="info">
2569 Extracted source (around line <strong>#22</strong>):
2570 </div>
2571 <div class="data">
2572 <table cellpadding="0" cellspacing="0" class="lines">
2573 <tr>
2574 <td>
2575 <pre class="line_numbers">
2576<span>20</span>
2577<span>21</span>
2578<span>22</span>
2579<span>23</span>
2580<span>24</span>
2581<span>25</span>
2582 </pre>
2583 </td>
2584<td width="100%">
2585<pre>
2586<div class="line">
2587</div><div class="line"> def call_with_rollbar(env)
2588</div><div class="line active"> call_without_rollbar(env)
2589</div><div class="line"> rescue ActionController::RoutingError => exception
2590</div><div class="line"> # won't reach here if show_detailed_exceptions is true
2591</div><div class="line"> scope = extract_scope_from(env)
2592</div>
2593</pre>
2594</td>
2595 </tr>
2596 </table>
2597 </div>
2598 </div>
2599 <div class="source hidden" id="frame-source-76">
2600 <div class="info">
2601 Extracted source (around line <strong>#135</strong>):
2602 </div>
2603 <div class="data">
2604 <table cellpadding="0" cellspacing="0" class="lines">
2605 <tr>
2606 <td>
2607 <pre class="line_numbers">
2608<span>133</span>
2609<span>134</span>
2610<span>135</span>
2611<span>136</span>
2612<span>137</span>
2613<span>138</span>
2614 </pre>
2615 </td>
2616<td width="100%">
2617<pre>
2618<div class="line">
2619</div><div class="line"> def call_app(env)
2620</div><div class="line active"> @app.call(env)
2621</div><div class="line"> rescue => e
2622</div><div class="line"> throw :app_exception, e
2623</div><div class="line"> end
2624</div>
2625</pre>
2626</td>
2627 </tr>
2628 </table>
2629 </div>
2630 </div>
2631 <div class="source hidden" id="frame-source-77">
2632 <div class="info">
2633 Extracted source (around line <strong>#22</strong>):
2634 </div>
2635 <div class="data">
2636 <table cellpadding="0" cellspacing="0" class="lines">
2637 <tr>
2638 <td>
2639 <pre class="line_numbers">
2640<span>20</span>
2641<span>21</span>
2642<span>22</span>
2643<span>23</span>
2644<span>24</span>
2645<span>25</span>
2646 </pre>
2647 </td>
2648<td width="100%">
2649<pre>
2650<div class="line"> app_exception = catch :app_exception do
2651</div><div class="line"> request = create_regular_or_whiny_request(env)
2652</div><div class="line active"> return call_app(env) unless request.from_whitelisted_ip?
2653</div><div class="line">
2654</div><div class="line"> if id = id_for_repl_session_update(request)
2655</div><div class="line"> return update_repl_session(id, request)
2656</div>
2657</pre>
2658</td>
2659 </tr>
2660 </table>
2661 </div>
2662 </div>
2663 <div class="source hidden" id="frame-source-78">
2664 <div class="info">
2665 Extracted source (around line <strong>#20</strong>):
2666 </div>
2667 <div class="data">
2668 <table cellpadding="0" cellspacing="0" class="lines">
2669 <tr>
2670 <td>
2671 <pre class="line_numbers">
2672<span>18</span>
2673<span>19</span>
2674<span>20</span>
2675<span>21</span>
2676<span>22</span>
2677<span>23</span>
2678 </pre>
2679 </td>
2680<td width="100%">
2681<pre>
2682<div class="line">
2683</div><div class="line"> def call(env)
2684</div><div class="line active"> app_exception = catch :app_exception do
2685</div><div class="line"> request = create_regular_or_whiny_request(env)
2686</div><div class="line"> return call_app(env) unless request.from_whitelisted_ip?
2687</div><div class="line">
2688</div>
2689</pre>
2690</td>
2691 </tr>
2692 </table>
2693 </div>
2694 </div>
2695 <div class="source hidden" id="frame-source-79">
2696 <div class="info">
2697 Extracted source (around line <strong>#20</strong>):
2698 </div>
2699 <div class="data">
2700 <table cellpadding="0" cellspacing="0" class="lines">
2701 <tr>
2702 <td>
2703 <pre class="line_numbers">
2704<span>18</span>
2705<span>19</span>
2706<span>20</span>
2707<span>21</span>
2708<span>22</span>
2709<span>23</span>
2710 </pre>
2711 </td>
2712<td width="100%">
2713<pre>
2714<div class="line">
2715</div><div class="line"> def call(env)
2716</div><div class="line active"> app_exception = catch :app_exception do
2717</div><div class="line"> request = create_regular_or_whiny_request(env)
2718</div><div class="line"> return call_app(env) unless request.from_whitelisted_ip?
2719</div><div class="line">
2720</div>
2721</pre>
2722</td>
2723 </tr>
2724 </table>
2725 </div>
2726 </div>
2727 <div class="source hidden" id="frame-source-80">
2728 <div class="info">
2729 Extracted source (around line <strong>#31</strong>):
2730 </div>
2731 <div class="data">
2732 <table cellpadding="0" cellspacing="0" class="lines">
2733 <tr>
2734 <td>
2735 <pre class="line_numbers">
2736<span>29</span>
2737<span>30</span>
2738<span>31</span>
2739<span>32</span>
2740<span>33</span>
2741<span>34</span>
2742 </pre>
2743 </td>
2744<td width="100%">
2745<pre>
2746<div class="line"> def call(env)
2747</div><div class="line"> request = ActionDispatch::Request.new env
2748</div><div class="line active"> @app.call(env)
2749</div><div class="line"> rescue Exception => exception
2750</div><div class="line"> if request.show_exceptions?
2751</div><div class="line"> render_exception(request, exception)
2752</div>
2753</pre>
2754</td>
2755 </tr>
2756 </table>
2757 </div>
2758 </div>
2759 <div class="source hidden" id="frame-source-81">
2760 <div class="info">
2761 Extracted source (around line <strong>#36</strong>):
2762 </div>
2763 <div class="data">
2764 <table cellpadding="0" cellspacing="0" class="lines">
2765 <tr>
2766 <td>
2767 <pre class="line_numbers">
2768<span>34</span>
2769<span>35</span>
2770<span>36</span>
2771<span>37</span>
2772<span>38</span>
2773<span>39</span>
2774 </pre>
2775 </td>
2776<td width="100%">
2777<pre>
2778<div class="line"> instrumenter.start "request.action_dispatch", request: request
2779</div><div class="line"> logger.info { started_request_message(request) }
2780</div><div class="line active"> resp = @app.call(env)
2781</div><div class="line"> resp[2] = ::Rack::BodyProxy.new(resp[2]) { finish(request) }
2782</div><div class="line"> resp
2783</div><div class="line"> rescue Exception
2784</div>
2785</pre>
2786</td>
2787 </tr>
2788 </table>
2789 </div>
2790 </div>
2791 <div class="source hidden" id="frame-source-82">
2792 <div class="info">
2793 Extracted source (around line <strong>#24</strong>):
2794 </div>
2795 <div class="data">
2796 <table cellpadding="0" cellspacing="0" class="lines">
2797 <tr>
2798 <td>
2799 <pre class="line_numbers">
2800<span>22</span>
2801<span>23</span>
2802<span>24</span>
2803<span>25</span>
2804<span>26</span>
2805<span>27</span>
2806 </pre>
2807 </td>
2808<td width="100%">
2809<pre>
2810<div class="line">
2811</div><div class="line"> if logger.respond_to?(:tagged)
2812</div><div class="line active"> logger.tagged(compute_tags(request)) { call_app(request, env) }
2813</div><div class="line"> else
2814</div><div class="line"> call_app(request, env)
2815</div><div class="line"> end
2816</div>
2817</pre>
2818</td>
2819 </tr>
2820 </table>
2821 </div>
2822 </div>
2823 <div class="source hidden" id="frame-source-83">
2824 <div class="info">
2825 Extracted source (around line <strong>#69</strong>):
2826 </div>
2827 <div class="data">
2828 <table cellpadding="0" cellspacing="0" class="lines">
2829 <tr>
2830 <td>
2831 <pre class="line_numbers">
2832<span>67</span>
2833<span>68</span>
2834<span>69</span>
2835<span>70</span>
2836<span>71</span>
2837<span>72</span>
2838 </pre>
2839 </td>
2840<td width="100%">
2841<pre>
2842<div class="line">
2843</div><div class="line"> def tagged(*tags)
2844</div><div class="line active"> formatter.tagged(*tags) { yield self }
2845</div><div class="line"> end
2846</div><div class="line">
2847</div><div class="line"> def flush
2848</div>
2849</pre>
2850</td>
2851 </tr>
2852 </table>
2853 </div>
2854 </div>
2855 <div class="source hidden" id="frame-source-84">
2856 <div class="info">
2857 Extracted source (around line <strong>#26</strong>):
2858 </div>
2859 <div class="data">
2860 <table cellpadding="0" cellspacing="0" class="lines">
2861 <tr>
2862 <td>
2863 <pre class="line_numbers">
2864<span>24</span>
2865<span>25</span>
2866<span>26</span>
2867<span>27</span>
2868<span>28</span>
2869<span>29</span>
2870 </pre>
2871 </td>
2872<td width="100%">
2873<pre>
2874<div class="line"> def tagged(*tags)
2875</div><div class="line"> new_tags = push_tags(*tags)
2876</div><div class="line active"> yield self
2877</div><div class="line"> ensure
2878</div><div class="line"> pop_tags(new_tags.size)
2879</div><div class="line"> end
2880</div>
2881</pre>
2882</td>
2883 </tr>
2884 </table>
2885 </div>
2886 </div>
2887 <div class="source hidden" id="frame-source-85">
2888 <div class="info">
2889 Extracted source (around line <strong>#69</strong>):
2890 </div>
2891 <div class="data">
2892 <table cellpadding="0" cellspacing="0" class="lines">
2893 <tr>
2894 <td>
2895 <pre class="line_numbers">
2896<span>67</span>
2897<span>68</span>
2898<span>69</span>
2899<span>70</span>
2900<span>71</span>
2901<span>72</span>
2902 </pre>
2903 </td>
2904<td width="100%">
2905<pre>
2906<div class="line">
2907</div><div class="line"> def tagged(*tags)
2908</div><div class="line active"> formatter.tagged(*tags) { yield self }
2909</div><div class="line"> end
2910</div><div class="line">
2911</div><div class="line"> def flush
2912</div>
2913</pre>
2914</td>
2915 </tr>
2916 </table>
2917 </div>
2918 </div>
2919 <div class="source hidden" id="frame-source-86">
2920 <div class="info">
2921 Extracted source (around line <strong>#24</strong>):
2922 </div>
2923 <div class="data">
2924 <table cellpadding="0" cellspacing="0" class="lines">
2925 <tr>
2926 <td>
2927 <pre class="line_numbers">
2928<span>22</span>
2929<span>23</span>
2930<span>24</span>
2931<span>25</span>
2932<span>26</span>
2933<span>27</span>
2934 </pre>
2935 </td>
2936<td width="100%">
2937<pre>
2938<div class="line">
2939</div><div class="line"> if logger.respond_to?(:tagged)
2940</div><div class="line active"> logger.tagged(compute_tags(request)) { call_app(request, env) }
2941</div><div class="line"> else
2942</div><div class="line"> call_app(request, env)
2943</div><div class="line"> end
2944</div>
2945</pre>
2946</td>
2947 </tr>
2948 </table>
2949 </div>
2950 </div>
2951 <div class="source hidden" id="frame-source-87">
2952 <div class="info">
2953 Extracted source (around line <strong>#13</strong>):
2954 </div>
2955 <div class="data">
2956 <table cellpadding="0" cellspacing="0" class="lines">
2957 <tr>
2958 <td>
2959 <pre class="line_numbers">
2960<span>11</span>
2961<span>12</span>
2962<span>13</span>
2963<span>14</span>
2964<span>15</span>
2965<span>16</span>
2966 </pre>
2967 </td>
2968<td width="100%">
2969<pre>
2970<div class="line"> ::Rails.logger.silence { @app.call(env) }
2971</div><div class="line"> else
2972</div><div class="line active"> @app.call(env)
2973</div><div class="line"> end
2974</div><div class="line"> end
2975</div><div class="line"> end
2976</div>
2977</pre>
2978</td>
2979 </tr>
2980 </table>
2981 </div>
2982 </div>
2983 <div class="source hidden" id="frame-source-88">
2984 <div class="info">
2985 Extracted source (around line <strong>#79</strong>):
2986 </div>
2987 <div class="data">
2988 <table cellpadding="0" cellspacing="0" class="lines">
2989 <tr>
2990 <td>
2991 <pre class="line_numbers">
2992<span>77</span>
2993<span>78</span>
2994<span>79</span>
2995<span>80</span>
2996<span>81</span>
2997<span>82</span>
2998 </pre>
2999 </td>
3000<td width="100%">
3001<pre>
3002<div class="line"> req = ActionDispatch::Request.new env
3003</div><div class="line"> req.remote_ip = GetIp.new(req, check_ip, proxies)
3004</div><div class="line active"> @app.call(req.env)
3005</div><div class="line"> end
3006</div><div class="line">
3007</div><div class="line"> # The GetIp class exists as a way to defer processing of the request data
3008</div>
3009</pre>
3010</td>
3011 </tr>
3012 </table>
3013 </div>
3014 </div>
3015 <div class="source hidden" id="frame-source-89">
3016 <div class="info">
3017 Extracted source (around line <strong>#25</strong>):
3018 </div>
3019 <div class="data">
3020 <table cellpadding="0" cellspacing="0" class="lines">
3021 <tr>
3022 <td>
3023 <pre class="line_numbers">
3024<span>23</span>
3025<span>24</span>
3026<span>25</span>
3027<span>26</span>
3028<span>27</span>
3029<span>28</span>
3030 </pre>
3031 </td>
3032<td width="100%">
3033<pre>
3034<div class="line"> req = ActionDispatch::Request.new env
3035</div><div class="line"> req.request_id = make_request_id(req.x_request_id)
3036</div><div class="line active"> @app.call(env).tap { |_status, headers, _body| headers[X_REQUEST_ID] = req.request_id }
3037</div><div class="line"> end
3038</div><div class="line">
3039</div><div class="line"> private
3040</div>
3041</pre>
3042</td>
3043 </tr>
3044 </table>
3045 </div>
3046 </div>
3047 <div class="source hidden" id="frame-source-90">
3048 <div class="info">
3049 Extracted source (around line <strong>#22</strong>):
3050 </div>
3051 <div class="data">
3052 <table cellpadding="0" cellspacing="0" class="lines">
3053 <tr>
3054 <td>
3055 <pre class="line_numbers">
3056<span>20</span>
3057<span>21</span>
3058<span>22</span>
3059<span>23</span>
3060<span>24</span>
3061<span>25</span>
3062 </pre>
3063 </td>
3064<td width="100%">
3065<pre>
3066<div class="line"> end
3067</div><div class="line">
3068</div><div class="line active"> @app.call(env)
3069</div><div class="line"> end
3070</div><div class="line">
3071</div><div class="line"> def method_override(env)
3072</div>
3073</pre>
3074</td>
3075 </tr>
3076 </table>
3077 </div>
3078 </div>
3079 <div class="source hidden" id="frame-source-91">
3080 <div class="info">
3081 Extracted source (around line <strong>#22</strong>):
3082 </div>
3083 <div class="data">
3084 <table cellpadding="0" cellspacing="0" class="lines">
3085 <tr>
3086 <td>
3087 <pre class="line_numbers">
3088<span>20</span>
3089<span>21</span>
3090<span>22</span>
3091<span>23</span>
3092<span>24</span>
3093<span>25</span>
3094 </pre>
3095 </td>
3096<td width="100%">
3097<pre>
3098<div class="line"> def call(env)
3099</div><div class="line"> start_time = Utils.clock_time
3100</div><div class="line active"> status, headers, body = @app.call(env)
3101</div><div class="line"> request_time = Utils.clock_time - start_time
3102</div><div class="line">
3103</div><div class="line"> unless headers.has_key?(@header_name)
3104</div>
3105</pre>
3106</td>
3107 </tr>
3108 </table>
3109 </div>
3110 </div>
3111 <div class="source hidden" id="frame-source-92">
3112 <div class="info">
3113 Extracted source (around line <strong>#27</strong>):
3114 </div>
3115 <div class="data">
3116 <table cellpadding="0" cellspacing="0" class="lines">
3117 <tr>
3118 <td>
3119 <pre class="line_numbers">
3120<span>25</span>
3121<span>26</span>
3122<span>27</span>
3123<span>28</span>
3124<span>29</span>
3125<span>30</span>
3126 </pre>
3127 </td>
3128<td width="100%">
3129<pre>
3130<div class="line"> def call(env)
3131</div><div class="line"> LocalCacheRegistry.set_cache_for(local_cache_key, LocalStore.new)
3132</div><div class="line active"> response = @app.call(env)
3133</div><div class="line"> response[2] = ::Rack::BodyProxy.new(response[2]) do
3134</div><div class="line"> LocalCacheRegistry.set_cache_for(local_cache_key, nil)
3135</div><div class="line"> end
3136</div>
3137</pre>
3138</td>
3139 </tr>
3140 </table>
3141 </div>
3142 </div>
3143 <div class="source hidden" id="frame-source-93">
3144 <div class="info">
3145 Extracted source (around line <strong>#12</strong>):
3146 </div>
3147 <div class="data">
3148 <table cellpadding="0" cellspacing="0" class="lines">
3149 <tr>
3150 <td>
3151 <pre class="line_numbers">
3152<span>10</span>
3153<span>11</span>
3154<span>12</span>
3155<span>13</span>
3156<span>14</span>
3157<span>15</span>
3158 </pre>
3159 </td>
3160<td width="100%">
3161<pre>
3162<div class="line"> state = @executor.run!
3163</div><div class="line"> begin
3164</div><div class="line active"> response = @app.call(env)
3165</div><div class="line"> returned = response << ::Rack::BodyProxy.new(response.pop) { state.complete! }
3166</div><div class="line"> ensure
3167</div><div class="line"> state.complete! unless returned
3168</div>
3169</pre>
3170</td>
3171 </tr>
3172 </table>
3173 </div>
3174 </div>
3175 <div class="source hidden" id="frame-source-94">
3176 <div class="info">
3177 Extracted source (around line <strong>#125</strong>):
3178 </div>
3179 <div class="data">
3180 <table cellpadding="0" cellspacing="0" class="lines">
3181 <tr>
3182 <td>
3183 <pre class="line_numbers">
3184<span>123</span>
3185<span>124</span>
3186<span>125</span>
3187<span>126</span>
3188<span>127</span>
3189<span>128</span>
3190 </pre>
3191 </td>
3192<td width="100%">
3193<pre>
3194<div class="line"> end
3195</div><div class="line">
3196</div><div class="line active"> @app.call(req.env)
3197</div><div class="line"> end
3198</div><div class="line"> end
3199</div><div class="line">end
3200</div>
3201</pre>
3202</td>
3203 </tr>
3204 </table>
3205 </div>
3206 </div>
3207 <div class="source hidden" id="frame-source-95">
3208 <div class="info">
3209 Extracted source (around line <strong>#111</strong>):
3210 </div>
3211 <div class="data">
3212 <table cellpadding="0" cellspacing="0" class="lines">
3213 <tr>
3214 <td>
3215 <pre class="line_numbers">
3216<span>109</span>
3217<span>110</span>
3218<span>111</span>
3219<span>112</span>
3220<span>113</span>
3221<span>114</span>
3222 </pre>
3223 </td>
3224<td width="100%">
3225<pre>
3226<div class="line">
3227</div><div class="line"> def call(env)
3228</div><div class="line active"> status, headers, body = @app.call(env)
3229</div><div class="line"> if body.respond_to?(:to_path)
3230</div><div class="line"> case type = variation(env)
3231</div><div class="line"> when 'X-Accel-Redirect'
3232</div>
3233</pre>
3234</td>
3235 </tr>
3236 </table>
3237 </div>
3238 </div>
3239 <div class="source hidden" id="frame-source-96">
3240 <div class="info">
3241 Extracted source (around line <strong>#22</strong>):
3242 </div>
3243 <div class="data">
3244 <table cellpadding="0" cellspacing="0" class="lines">
3245 <tr>
3246 <td>
3247 <pre class="line_numbers">
3248<span>20</span>
3249<span>21</span>
3250<span>22</span>
3251<span>23</span>
3252<span>24</span>
3253<span>25</span>
3254 </pre>
3255 </td>
3256<td width="100%">
3257<pre>
3258<div class="line"> super(env)
3259</div><div class="line"> else
3260</div><div class="line active"> @app.call(env)
3261</div><div class="line"> end
3262</div><div class="line"> end
3263</div><div class="line">
3264</div>
3265</pre>
3266</td>
3267 </tr>
3268 </table>
3269 </div>
3270 </div>
3271 <div class="source hidden" id="frame-source-97">
3272 <div class="info">
3273 Extracted source (around line <strong>#57</strong>):
3274 </div>
3275 <div class="data">
3276 <table cellpadding="0" cellspacing="0" class="lines">
3277 <tr>
3278 <td>
3279 <pre class="line_numbers">
3280<span>55</span>
3281<span>56</span>
3282<span>57</span>
3283<span>58</span>
3284<span>59</span>
3285<span>60</span>
3286 </pre>
3287 </td>
3288<td width="100%">
3289<pre>
3290<div class="line">
3291</div><div class="line"> def call(env)
3292</div><div class="line active"> rewrite_response(perform_request(rewrite_env(env)))
3293</div><div class="line"> end
3294</div><div class="line">
3295</div><div class="line"> # Return modified env
3296</div>
3297</pre>
3298</td>
3299 </tr>
3300 </table>
3301 </div>
3302 </div>
3303 <div class="source hidden" id="frame-source-98">
3304 <div class="info">
3305 Extracted source (around line <strong>#522</strong>):
3306 </div>
3307 <div class="data">
3308 <table cellpadding="0" cellspacing="0" class="lines">
3309 <tr>
3310 <td>
3311 <pre class="line_numbers">
3312<span>520</span>
3313<span>521</span>
3314<span>522</span>
3315<span>523</span>
3316<span>524</span>
3317<span>525</span>
3318 </pre>
3319 </td>
3320<td width="100%">
3321<pre>
3322<div class="line"> def call(env)
3323</div><div class="line"> req = build_request env
3324</div><div class="line active"> app.call req.env
3325</div><div class="line"> end
3326</div><div class="line">
3327</div><div class="line"> # Defines additional Rack env configuration that is added on each call.
3328</div>
3329</pre>
3330</td>
3331 </tr>
3332 </table>
3333 </div>
3334 </div>
3335 <div class="source hidden" id="frame-source-99">
3336 <div class="info">
3337 Extracted source (around line <strong>#225</strong>):
3338 </div>
3339 <div class="data">
3340 <table cellpadding="0" cellspacing="0" class="lines">
3341 <tr>
3342 <td>
3343 <pre class="line_numbers">
3344<span>223</span>
3345<span>224</span>
3346<span>225</span>
3347<span>226</span>
3348<span>227</span>
3349<span>228</span>
3350 </pre>
3351 </td>
3352<td width="100%">
3353<pre>
3354<div class="line"> def call(env)
3355</div><div class="line"> env[Const::PUMA_CONFIG] = @config
3356</div><div class="line active"> @app.call(env)
3357</div><div class="line"> end
3358</div><div class="line"> end
3359</div><div class="line">
3360</div>
3361</pre>
3362</td>
3363 </tr>
3364 </table>
3365 </div>
3366 </div>
3367 <div class="source hidden" id="frame-source-100">
3368 <div class="info">
3369 Extracted source (around line <strong>#658</strong>):
3370 </div>
3371 <div class="data">
3372 <table cellpadding="0" cellspacing="0" class="lines">
3373 <tr>
3374 <td>
3375 <pre class="line_numbers">
3376<span>656</span>
3377<span>657</span>
3378<span>658</span>
3379<span>659</span>
3380<span>660</span>
3381<span>661</span>
3382 </pre>
3383 </td>
3384<td width="100%">
3385<pre>
3386<div class="line"> begin
3387</div><div class="line"> begin
3388</div><div class="line active"> status, headers, res_body = @app.call(env)
3389</div><div class="line">
3390</div><div class="line"> return :async if req.hijacked
3391</div><div class="line">
3392</div>
3393</pre>
3394</td>
3395 </tr>
3396 </table>
3397 </div>
3398 </div>
3399 <div class="source hidden" id="frame-source-101">
3400 <div class="info">
3401 Extracted source (around line <strong>#472</strong>):
3402 </div>
3403 <div class="data">
3404 <table cellpadding="0" cellspacing="0" class="lines">
3405 <tr>
3406 <td>
3407 <pre class="line_numbers">
3408<span>470</span>
3409<span>471</span>
3410<span>472</span>
3411<span>473</span>
3412<span>474</span>
3413<span>475</span>
3414 </pre>
3415 </td>
3416<td width="100%">
3417<pre>
3418<div class="line">
3419</div><div class="line"> while true
3420</div><div class="line active"> case handle_request(client, buffer)
3421</div><div class="line"> when false
3422</div><div class="line"> return
3423</div><div class="line"> when :async
3424</div>
3425</pre>
3426</td>
3427 </tr>
3428 </table>
3429 </div>
3430 </div>
3431 <div class="source hidden" id="frame-source-102">
3432 <div class="info">
3433 Extracted source (around line <strong>#332</strong>):
3434 </div>
3435 <div class="data">
3436 <table cellpadding="0" cellspacing="0" class="lines">
3437 <tr>
3438 <td>
3439 <pre class="line_numbers">
3440<span>330</span>
3441<span>331</span>
3442<span>332</span>
3443<span>333</span>
3444<span>334</span>
3445<span>335</span>
3446 </pre>
3447 </td>
3448<td width="100%">
3449<pre>
3450<div class="line"> else
3451</div><div class="line"> if process_now
3452</div><div class="line active"> process_client client, buffer
3453</div><div class="line"> else
3454</div><div class="line"> client.set_timeout @first_data_timeout
3455</div><div class="line"> @reactor.add client
3456</div>
3457</pre>
3458</td>
3459 </tr>
3460 </table>
3461 </div>
3462 </div>
3463 <div class="source hidden" id="frame-source-103">
3464 <div class="info">
3465 Extracted source (around line <strong>#133</strong>):
3466 </div>
3467 <div class="data">
3468 <table cellpadding="0" cellspacing="0" class="lines">
3469 <tr>
3470 <td>
3471 <pre class="line_numbers">
3472<span>131</span>
3473<span>132</span>
3474<span>133</span>
3475<span>134</span>
3476<span>135</span>
3477<span>136</span>
3478 </pre>
3479 </td>
3480<td width="100%">
3481<pre>
3482<div class="line">
3483</div><div class="line"> begin
3484</div><div class="line active"> block.call(work, *extra)
3485</div><div class="line"> rescue Exception => e
3486</div><div class="line"> STDERR.puts "Error reached top of thread-pool: #{e.message} (#{e.class})"
3487</div><div class="line"> end
3488</div>
3489</pre>
3490</td>
3491 </tr>
3492 </table>
3493 </div>
3494 </div>
3495
3496
3497 <p></p>
3498
3499
3500<p><code>Rails.root: /home/rails/howdoo-project/howdoo_web_mobile</code></p>
3501
3502<div id="traces">
3503 <a href="#" onclick="hide('Framework-Trace');hide('Full-Trace');show('Application-Trace');; return false;">Application Trace</a> |
3504 <a href="#" onclick="hide('Application-Trace');hide('Full-Trace');show('Framework-Trace');; return false;">Framework Trace</a> |
3505 <a href="#" onclick="hide('Application-Trace');hide('Framework-Trace');show('Full-Trace');; return false;">Full Trace</a>
3506
3507 <div id="Application-Trace" style="display: block;">
3508 <pre><code><a class="trace-frames" data-frame-id="0" href="#">app/views/api/comments/_comment.json.jbuilder:4:in `_app_views_api_comments__comment_json_jbuilder__4378232291152900530_70091588595280'</a><br><a class="trace-frames" data-frame-id="30" href="#">app/controllers/api/comments_controller.rb:58:in `post_comment'</a><br><a class="trace-frames" data-frame-id="31" href="#">app/controllers/api/comments_controller.rb:14:in `create'</a><br></code></pre>
3509 </div>
3510 <div id="Framework-Trace" style="display: none;">
3511 <pre><code><a class="trace-frames" data-frame-id="1" href="#">actionview (5.1.6) lib/action_view/template.rb:157:in `block in render'</a><br><a class="trace-frames" data-frame-id="2" href="#">activesupport (5.1.6) lib/active_support/notifications.rb:168:in `instrument'</a><br><a class="trace-frames" data-frame-id="3" href="#">actionview (5.1.6) lib/action_view/template.rb:352:in `instrument_render_template'</a><br><a class="trace-frames" data-frame-id="4" href="#">actionview (5.1.6) lib/action_view/template.rb:155:in `render'</a><br><a class="trace-frames" data-frame-id="5" href="#">actionview (5.1.6) lib/action_view/renderer/partial_renderer.rb:342:in `block in render_partial'</a><br><a class="trace-frames" data-frame-id="6" href="#">actionview (5.1.6) lib/action_view/renderer/abstract_renderer.rb:42:in `block in instrument'</a><br><a class="trace-frames" data-frame-id="7" href="#">activesupport (5.1.6) lib/active_support/notifications.rb:166:in `block in instrument'</a><br><a class="trace-frames" data-frame-id="8" href="#">activesupport (5.1.6) lib/active_support/notifications/instrumenter.rb:21:in `instrument'</a><br><a class="trace-frames" data-frame-id="9" href="#">activesupport (5.1.6) lib/active_support/notifications.rb:166:in `instrument'</a><br><a class="trace-frames" data-frame-id="10" href="#">actionview (5.1.6) lib/action_view/renderer/abstract_renderer.rb:41:in `instrument'</a><br><a class="trace-frames" data-frame-id="11" href="#">actionview (5.1.6) lib/action_view/renderer/partial_renderer.rb:331:in `render_partial'</a><br><a class="trace-frames" data-frame-id="12" href="#">actionview (5.1.6) lib/action_view/renderer/partial_renderer.rb:310:in `render'</a><br><a class="trace-frames" data-frame-id="13" href="#">actionview (5.1.6) lib/action_view/renderer/renderer.rb:47:in `render_partial'</a><br><a class="trace-frames" data-frame-id="14" href="#">actionview (5.1.6) lib/action_view/renderer/renderer.rb:21:in `render'</a><br><a class="trace-frames" data-frame-id="15" href="#">actionview (5.1.6) lib/action_view/rendering.rb:103:in `_render_template'</a><br><a class="trace-frames" data-frame-id="16" href="#">actionpack (5.1.6) lib/action_controller/metal/streaming.rb:217:in `_render_template'</a><br><a class="trace-frames" data-frame-id="17" href="#">actionview (5.1.6) lib/action_view/rendering.rb:83:in `render_to_body'</a><br><a class="trace-frames" data-frame-id="18" href="#">actionpack (5.1.6) lib/action_controller/metal/rendering.rb:52:in `render_to_body'</a><br><a class="trace-frames" data-frame-id="19" href="#">actionpack (5.1.6) lib/action_controller/metal/renderers.rb:141:in `render_to_body'</a><br><a class="trace-frames" data-frame-id="20" href="#">actionpack (5.1.6) lib/abstract_controller/rendering.rb:24:in `render'</a><br><a class="trace-frames" data-frame-id="21" href="#">actionpack (5.1.6) lib/action_controller/metal/rendering.rb:36:in `render'</a><br><a class="trace-frames" data-frame-id="22" href="#">actionpack (5.1.6) lib/action_controller/metal/instrumentation.rb:44:in `block (2 levels) in render'</a><br><a class="trace-frames" data-frame-id="23" href="#">activesupport (5.1.6) lib/active_support/core_ext/benchmark.rb:12:in `block in ms'</a><br><a class="trace-frames" data-frame-id="24" href="#">/home/rails/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/benchmark.rb:308:in `realtime'</a><br><a class="trace-frames" data-frame-id="25" href="#">activesupport (5.1.6) lib/active_support/core_ext/benchmark.rb:12:in `ms'</a><br><a class="trace-frames" data-frame-id="26" href="#">actionpack (5.1.6) lib/action_controller/metal/instrumentation.rb:44:in `block in render'</a><br><a class="trace-frames" data-frame-id="27" href="#">actionpack (5.1.6) lib/action_controller/metal/instrumentation.rb:87:in `cleanup_view_runtime'</a><br><a class="trace-frames" data-frame-id="28" href="#">activerecord (5.1.6) lib/active_record/railties/controller_runtime.rb:29:in `cleanup_view_runtime'</a><br><a class="trace-frames" data-frame-id="29" href="#">actionpack (5.1.6) lib/action_controller/metal/instrumentation.rb:43:in `render'</a><br><a class="trace-frames" data-frame-id="32" href="#">actionpack (5.1.6) lib/action_controller/metal/basic_implicit_render.rb:4:in `send_action'</a><br><a class="trace-frames" data-frame-id="33" href="#">actionpack (5.1.6) lib/abstract_controller/base.rb:186:in `process_action'</a><br><a class="trace-frames" data-frame-id="34" href="#">actionpack (5.1.6) lib/action_controller/metal/rendering.rb:30:in `process_action'</a><br><a class="trace-frames" data-frame-id="35" href="#">actionpack (5.1.6) lib/abstract_controller/callbacks.rb:20:in `block in process_action'</a><br><a class="trace-frames" data-frame-id="36" href="#">activesupport (5.1.6) lib/active_support/callbacks.rb:131:in `run_callbacks'</a><br><a class="trace-frames" data-frame-id="37" href="#">actionpack (5.1.6) lib/abstract_controller/callbacks.rb:19:in `process_action'</a><br><a class="trace-frames" data-frame-id="38" href="#">actionpack (5.1.6) lib/action_controller/metal/rescue.rb:20:in `process_action'</a><br><a class="trace-frames" data-frame-id="39" href="#">actionpack (5.1.6) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'</a><br><a class="trace-frames" data-frame-id="40" href="#">activesupport (5.1.6) lib/active_support/notifications.rb:166:in `block in instrument'</a><br><a class="trace-frames" data-frame-id="41" href="#">activesupport (5.1.6) lib/active_support/notifications/instrumenter.rb:21:in `instrument'</a><br><a class="trace-frames" data-frame-id="42" href="#">activesupport (5.1.6) lib/active_support/notifications.rb:166:in `instrument'</a><br><a class="trace-frames" data-frame-id="43" href="#">actionpack (5.1.6) lib/action_controller/metal/instrumentation.rb:30:in `process_action'</a><br><a class="trace-frames" data-frame-id="44" href="#">actionpack (5.1.6) lib/action_controller/metal/params_wrapper.rb:252:in `process_action'</a><br><a class="trace-frames" data-frame-id="45" href="#">activerecord (5.1.6) lib/active_record/railties/controller_runtime.rb:22:in `process_action'</a><br><a class="trace-frames" data-frame-id="46" href="#">actionpack (5.1.6) lib/abstract_controller/base.rb:124:in `process'</a><br><a class="trace-frames" data-frame-id="47" href="#">actionview (5.1.6) lib/action_view/rendering.rb:30:in `process'</a><br><a class="trace-frames" data-frame-id="48" href="#">actionpack (5.1.6) lib/action_controller/metal.rb:189:in `dispatch'</a><br><a class="trace-frames" data-frame-id="49" href="#">actionpack (5.1.6) lib/action_controller/metal.rb:253:in `dispatch'</a><br><a class="trace-frames" data-frame-id="50" href="#">actionpack (5.1.6) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'</a><br><a class="trace-frames" data-frame-id="51" href="#">actionpack (5.1.6) lib/action_dispatch/routing/route_set.rb:31:in `serve'</a><br><a class="trace-frames" data-frame-id="52" href="#">actionpack (5.1.6) lib/action_dispatch/journey/router.rb:50:in `block in serve'</a><br><a class="trace-frames" data-frame-id="53" href="#">actionpack (5.1.6) lib/action_dispatch/journey/router.rb:33:in `each'</a><br><a class="trace-frames" data-frame-id="54" href="#">actionpack (5.1.6) lib/action_dispatch/journey/router.rb:33:in `serve'</a><br><a class="trace-frames" data-frame-id="55" href="#">actionpack (5.1.6) lib/action_dispatch/routing/route_set.rb:844:in `call'</a><br><a class="trace-frames" data-frame-id="56" href="#">bullet (5.7.6) lib/bullet/rack.rb:14:in `call'</a><br><a class="trace-frames" data-frame-id="57" href="#">warden (1.2.7) lib/warden/manager.rb:36:in `block in call'</a><br><a class="trace-frames" data-frame-id="58" href="#">warden (1.2.7) lib/warden/manager.rb:35:in `catch'</a><br><a class="trace-frames" data-frame-id="59" href="#">warden (1.2.7) lib/warden/manager.rb:35:in `call'</a><br><a class="trace-frames" data-frame-id="60" href="#">rack (2.0.5) lib/rack/etag.rb:25:in `call'</a><br><a class="trace-frames" data-frame-id="61" href="#">rack (2.0.5) lib/rack/conditional_get.rb:38:in `call'</a><br><a class="trace-frames" data-frame-id="62" href="#">rack (2.0.5) lib/rack/head.rb:12:in `call'</a><br><a class="trace-frames" data-frame-id="63" href="#">rack (2.0.5) lib/rack/session/abstract/id.rb:232:in `context'</a><br><a class="trace-frames" data-frame-id="64" href="#">rack (2.0.5) lib/rack/session/abstract/id.rb:226:in `call'</a><br><a class="trace-frames" data-frame-id="65" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/cookies.rb:613:in `call'</a><br><a class="trace-frames" data-frame-id="66" href="#">activerecord (5.1.6) lib/active_record/migration.rb:556:in `call'</a><br><a class="trace-frames" data-frame-id="67" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/callbacks.rb:26:in `block in call'</a><br><a class="trace-frames" data-frame-id="68" href="#">activesupport (5.1.6) lib/active_support/callbacks.rb:97:in `run_callbacks'</a><br><a class="trace-frames" data-frame-id="69" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/callbacks.rb:24:in `call'</a><br><a class="trace-frames" data-frame-id="70" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/executor.rb:12:in `call'</a><br><a class="trace-frames" data-frame-id="71" href="#">rollbar (2.17.0) lib/rollbar/middleware/rails/rollbar.rb:24:in `block in call'</a><br><a class="trace-frames" data-frame-id="72" href="#">rollbar (2.17.0) lib/rollbar.rb:146:in `scoped'</a><br><a class="trace-frames" data-frame-id="73" href="#">rollbar (2.17.0) lib/rollbar/middleware/rails/rollbar.rb:22:in `call'</a><br><a class="trace-frames" data-frame-id="74" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'</a><br><a class="trace-frames" data-frame-id="75" href="#">rollbar (2.17.0) lib/rollbar/middleware/rails/show_exceptions.rb:22:in `call_with_rollbar'</a><br><a class="trace-frames" data-frame-id="76" href="#">web-console (3.6.2) lib/web_console/middleware.rb:135:in `call_app'</a><br><a class="trace-frames" data-frame-id="77" href="#">web-console (3.6.2) lib/web_console/middleware.rb:22:in `block in call'</a><br><a class="trace-frames" data-frame-id="78" href="#">web-console (3.6.2) lib/web_console/middleware.rb:20:in `catch'</a><br><a class="trace-frames" data-frame-id="79" href="#">web-console (3.6.2) lib/web_console/middleware.rb:20:in `call'</a><br><a class="trace-frames" data-frame-id="80" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'</a><br><a class="trace-frames" data-frame-id="81" href="#">railties (5.1.6) lib/rails/rack/logger.rb:36:in `call_app'</a><br><a class="trace-frames" data-frame-id="82" href="#">railties (5.1.6) lib/rails/rack/logger.rb:24:in `block in call'</a><br><a class="trace-frames" data-frame-id="83" href="#">activesupport (5.1.6) lib/active_support/tagged_logging.rb:69:in `block in tagged'</a><br><a class="trace-frames" data-frame-id="84" href="#">activesupport (5.1.6) lib/active_support/tagged_logging.rb:26:in `tagged'</a><br><a class="trace-frames" data-frame-id="85" href="#">activesupport (5.1.6) lib/active_support/tagged_logging.rb:69:in `tagged'</a><br><a class="trace-frames" data-frame-id="86" href="#">railties (5.1.6) lib/rails/rack/logger.rb:24:in `call'</a><br><a class="trace-frames" data-frame-id="87" href="#">sprockets-rails (3.2.1) lib/sprockets/rails/quiet_assets.rb:13:in `call'</a><br><a class="trace-frames" data-frame-id="88" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'</a><br><a class="trace-frames" data-frame-id="89" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/request_id.rb:25:in `call'</a><br><a class="trace-frames" data-frame-id="90" href="#">rack (2.0.5) lib/rack/method_override.rb:22:in `call'</a><br><a class="trace-frames" data-frame-id="91" href="#">rack (2.0.5) lib/rack/runtime.rb:22:in `call'</a><br><a class="trace-frames" data-frame-id="92" href="#">activesupport (5.1.6) lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'</a><br><a class="trace-frames" data-frame-id="93" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/executor.rb:12:in `call'</a><br><a class="trace-frames" data-frame-id="94" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/static.rb:125:in `call'</a><br><a class="trace-frames" data-frame-id="95" href="#">rack (2.0.5) lib/rack/sendfile.rb:111:in `call'</a><br><a class="trace-frames" data-frame-id="96" href="#">webpacker (3.5.5) lib/webpacker/dev_server_proxy.rb:22:in `perform_request'</a><br><a class="trace-frames" data-frame-id="97" href="#">rack-proxy (0.6.4) lib/rack/proxy.rb:57:in `call'</a><br><a class="trace-frames" data-frame-id="98" href="#">railties (5.1.6) lib/rails/engine.rb:522:in `call'</a><br><a class="trace-frames" data-frame-id="99" href="#">puma (3.12.0) lib/puma/configuration.rb:225:in `call'</a><br><a class="trace-frames" data-frame-id="100" href="#">puma (3.12.0) lib/puma/server.rb:658:in `handle_request'</a><br><a class="trace-frames" data-frame-id="101" href="#">puma (3.12.0) lib/puma/server.rb:472:in `process_client'</a><br><a class="trace-frames" data-frame-id="102" href="#">puma (3.12.0) lib/puma/server.rb:332:in `block in run'</a><br><a class="trace-frames" data-frame-id="103" href="#">puma (3.12.0) lib/puma/thread_pool.rb:133:in `block in spawn_thread'</a><br></code></pre>
3512 </div>
3513 <div id="Full-Trace" style="display: none;">
3514 <pre><code><a class="trace-frames" data-frame-id="0" href="#">app/views/api/comments/_comment.json.jbuilder:4:in `_app_views_api_comments__comment_json_jbuilder__4378232291152900530_70091588595280'</a><br><a class="trace-frames" data-frame-id="1" href="#">actionview (5.1.6) lib/action_view/template.rb:157:in `block in render'</a><br><a class="trace-frames" data-frame-id="2" href="#">activesupport (5.1.6) lib/active_support/notifications.rb:168:in `instrument'</a><br><a class="trace-frames" data-frame-id="3" href="#">actionview (5.1.6) lib/action_view/template.rb:352:in `instrument_render_template'</a><br><a class="trace-frames" data-frame-id="4" href="#">actionview (5.1.6) lib/action_view/template.rb:155:in `render'</a><br><a class="trace-frames" data-frame-id="5" href="#">actionview (5.1.6) lib/action_view/renderer/partial_renderer.rb:342:in `block in render_partial'</a><br><a class="trace-frames" data-frame-id="6" href="#">actionview (5.1.6) lib/action_view/renderer/abstract_renderer.rb:42:in `block in instrument'</a><br><a class="trace-frames" data-frame-id="7" href="#">activesupport (5.1.6) lib/active_support/notifications.rb:166:in `block in instrument'</a><br><a class="trace-frames" data-frame-id="8" href="#">activesupport (5.1.6) lib/active_support/notifications/instrumenter.rb:21:in `instrument'</a><br><a class="trace-frames" data-frame-id="9" href="#">activesupport (5.1.6) lib/active_support/notifications.rb:166:in `instrument'</a><br><a class="trace-frames" data-frame-id="10" href="#">actionview (5.1.6) lib/action_view/renderer/abstract_renderer.rb:41:in `instrument'</a><br><a class="trace-frames" data-frame-id="11" href="#">actionview (5.1.6) lib/action_view/renderer/partial_renderer.rb:331:in `render_partial'</a><br><a class="trace-frames" data-frame-id="12" href="#">actionview (5.1.6) lib/action_view/renderer/partial_renderer.rb:310:in `render'</a><br><a class="trace-frames" data-frame-id="13" href="#">actionview (5.1.6) lib/action_view/renderer/renderer.rb:47:in `render_partial'</a><br><a class="trace-frames" data-frame-id="14" href="#">actionview (5.1.6) lib/action_view/renderer/renderer.rb:21:in `render'</a><br><a class="trace-frames" data-frame-id="15" href="#">actionview (5.1.6) lib/action_view/rendering.rb:103:in `_render_template'</a><br><a class="trace-frames" data-frame-id="16" href="#">actionpack (5.1.6) lib/action_controller/metal/streaming.rb:217:in `_render_template'</a><br><a class="trace-frames" data-frame-id="17" href="#">actionview (5.1.6) lib/action_view/rendering.rb:83:in `render_to_body'</a><br><a class="trace-frames" data-frame-id="18" href="#">actionpack (5.1.6) lib/action_controller/metal/rendering.rb:52:in `render_to_body'</a><br><a class="trace-frames" data-frame-id="19" href="#">actionpack (5.1.6) lib/action_controller/metal/renderers.rb:141:in `render_to_body'</a><br><a class="trace-frames" data-frame-id="20" href="#">actionpack (5.1.6) lib/abstract_controller/rendering.rb:24:in `render'</a><br><a class="trace-frames" data-frame-id="21" href="#">actionpack (5.1.6) lib/action_controller/metal/rendering.rb:36:in `render'</a><br><a class="trace-frames" data-frame-id="22" href="#">actionpack (5.1.6) lib/action_controller/metal/instrumentation.rb:44:in `block (2 levels) in render'</a><br><a class="trace-frames" data-frame-id="23" href="#">activesupport (5.1.6) lib/active_support/core_ext/benchmark.rb:12:in `block in ms'</a><br><a class="trace-frames" data-frame-id="24" href="#">/home/rails/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/benchmark.rb:308:in `realtime'</a><br><a class="trace-frames" data-frame-id="25" href="#">activesupport (5.1.6) lib/active_support/core_ext/benchmark.rb:12:in `ms'</a><br><a class="trace-frames" data-frame-id="26" href="#">actionpack (5.1.6) lib/action_controller/metal/instrumentation.rb:44:in `block in render'</a><br><a class="trace-frames" data-frame-id="27" href="#">actionpack (5.1.6) lib/action_controller/metal/instrumentation.rb:87:in `cleanup_view_runtime'</a><br><a class="trace-frames" data-frame-id="28" href="#">activerecord (5.1.6) lib/active_record/railties/controller_runtime.rb:29:in `cleanup_view_runtime'</a><br><a class="trace-frames" data-frame-id="29" href="#">actionpack (5.1.6) lib/action_controller/metal/instrumentation.rb:43:in `render'</a><br><a class="trace-frames" data-frame-id="30" href="#">app/controllers/api/comments_controller.rb:58:in `post_comment'</a><br><a class="trace-frames" data-frame-id="31" href="#">app/controllers/api/comments_controller.rb:14:in `create'</a><br><a class="trace-frames" data-frame-id="32" href="#">actionpack (5.1.6) lib/action_controller/metal/basic_implicit_render.rb:4:in `send_action'</a><br><a class="trace-frames" data-frame-id="33" href="#">actionpack (5.1.6) lib/abstract_controller/base.rb:186:in `process_action'</a><br><a class="trace-frames" data-frame-id="34" href="#">actionpack (5.1.6) lib/action_controller/metal/rendering.rb:30:in `process_action'</a><br><a class="trace-frames" data-frame-id="35" href="#">actionpack (5.1.6) lib/abstract_controller/callbacks.rb:20:in `block in process_action'</a><br><a class="trace-frames" data-frame-id="36" href="#">activesupport (5.1.6) lib/active_support/callbacks.rb:131:in `run_callbacks'</a><br><a class="trace-frames" data-frame-id="37" href="#">actionpack (5.1.6) lib/abstract_controller/callbacks.rb:19:in `process_action'</a><br><a class="trace-frames" data-frame-id="38" href="#">actionpack (5.1.6) lib/action_controller/metal/rescue.rb:20:in `process_action'</a><br><a class="trace-frames" data-frame-id="39" href="#">actionpack (5.1.6) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'</a><br><a class="trace-frames" data-frame-id="40" href="#">activesupport (5.1.6) lib/active_support/notifications.rb:166:in `block in instrument'</a><br><a class="trace-frames" data-frame-id="41" href="#">activesupport (5.1.6) lib/active_support/notifications/instrumenter.rb:21:in `instrument'</a><br><a class="trace-frames" data-frame-id="42" href="#">activesupport (5.1.6) lib/active_support/notifications.rb:166:in `instrument'</a><br><a class="trace-frames" data-frame-id="43" href="#">actionpack (5.1.6) lib/action_controller/metal/instrumentation.rb:30:in `process_action'</a><br><a class="trace-frames" data-frame-id="44" href="#">actionpack (5.1.6) lib/action_controller/metal/params_wrapper.rb:252:in `process_action'</a><br><a class="trace-frames" data-frame-id="45" href="#">activerecord (5.1.6) lib/active_record/railties/controller_runtime.rb:22:in `process_action'</a><br><a class="trace-frames" data-frame-id="46" href="#">actionpack (5.1.6) lib/abstract_controller/base.rb:124:in `process'</a><br><a class="trace-frames" data-frame-id="47" href="#">actionview (5.1.6) lib/action_view/rendering.rb:30:in `process'</a><br><a class="trace-frames" data-frame-id="48" href="#">actionpack (5.1.6) lib/action_controller/metal.rb:189:in `dispatch'</a><br><a class="trace-frames" data-frame-id="49" href="#">actionpack (5.1.6) lib/action_controller/metal.rb:253:in `dispatch'</a><br><a class="trace-frames" data-frame-id="50" href="#">actionpack (5.1.6) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'</a><br><a class="trace-frames" data-frame-id="51" href="#">actionpack (5.1.6) lib/action_dispatch/routing/route_set.rb:31:in `serve'</a><br><a class="trace-frames" data-frame-id="52" href="#">actionpack (5.1.6) lib/action_dispatch/journey/router.rb:50:in `block in serve'</a><br><a class="trace-frames" data-frame-id="53" href="#">actionpack (5.1.6) lib/action_dispatch/journey/router.rb:33:in `each'</a><br><a class="trace-frames" data-frame-id="54" href="#">actionpack (5.1.6) lib/action_dispatch/journey/router.rb:33:in `serve'</a><br><a class="trace-frames" data-frame-id="55" href="#">actionpack (5.1.6) lib/action_dispatch/routing/route_set.rb:844:in `call'</a><br><a class="trace-frames" data-frame-id="56" href="#">bullet (5.7.6) lib/bullet/rack.rb:14:in `call'</a><br><a class="trace-frames" data-frame-id="57" href="#">warden (1.2.7) lib/warden/manager.rb:36:in `block in call'</a><br><a class="trace-frames" data-frame-id="58" href="#">warden (1.2.7) lib/warden/manager.rb:35:in `catch'</a><br><a class="trace-frames" data-frame-id="59" href="#">warden (1.2.7) lib/warden/manager.rb:35:in `call'</a><br><a class="trace-frames" data-frame-id="60" href="#">rack (2.0.5) lib/rack/etag.rb:25:in `call'</a><br><a class="trace-frames" data-frame-id="61" href="#">rack (2.0.5) lib/rack/conditional_get.rb:38:in `call'</a><br><a class="trace-frames" data-frame-id="62" href="#">rack (2.0.5) lib/rack/head.rb:12:in `call'</a><br><a class="trace-frames" data-frame-id="63" href="#">rack (2.0.5) lib/rack/session/abstract/id.rb:232:in `context'</a><br><a class="trace-frames" data-frame-id="64" href="#">rack (2.0.5) lib/rack/session/abstract/id.rb:226:in `call'</a><br><a class="trace-frames" data-frame-id="65" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/cookies.rb:613:in `call'</a><br><a class="trace-frames" data-frame-id="66" href="#">activerecord (5.1.6) lib/active_record/migration.rb:556:in `call'</a><br><a class="trace-frames" data-frame-id="67" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/callbacks.rb:26:in `block in call'</a><br><a class="trace-frames" data-frame-id="68" href="#">activesupport (5.1.6) lib/active_support/callbacks.rb:97:in `run_callbacks'</a><br><a class="trace-frames" data-frame-id="69" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/callbacks.rb:24:in `call'</a><br><a class="trace-frames" data-frame-id="70" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/executor.rb:12:in `call'</a><br><a class="trace-frames" data-frame-id="71" href="#">rollbar (2.17.0) lib/rollbar/middleware/rails/rollbar.rb:24:in `block in call'</a><br><a class="trace-frames" data-frame-id="72" href="#">rollbar (2.17.0) lib/rollbar.rb:146:in `scoped'</a><br><a class="trace-frames" data-frame-id="73" href="#">rollbar (2.17.0) lib/rollbar/middleware/rails/rollbar.rb:22:in `call'</a><br><a class="trace-frames" data-frame-id="74" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'</a><br><a class="trace-frames" data-frame-id="75" href="#">rollbar (2.17.0) lib/rollbar/middleware/rails/show_exceptions.rb:22:in `call_with_rollbar'</a><br><a class="trace-frames" data-frame-id="76" href="#">web-console (3.6.2) lib/web_console/middleware.rb:135:in `call_app'</a><br><a class="trace-frames" data-frame-id="77" href="#">web-console (3.6.2) lib/web_console/middleware.rb:22:in `block in call'</a><br><a class="trace-frames" data-frame-id="78" href="#">web-console (3.6.2) lib/web_console/middleware.rb:20:in `catch'</a><br><a class="trace-frames" data-frame-id="79" href="#">web-console (3.6.2) lib/web_console/middleware.rb:20:in `call'</a><br><a class="trace-frames" data-frame-id="80" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'</a><br><a class="trace-frames" data-frame-id="81" href="#">railties (5.1.6) lib/rails/rack/logger.rb:36:in `call_app'</a><br><a class="trace-frames" data-frame-id="82" href="#">railties (5.1.6) lib/rails/rack/logger.rb:24:in `block in call'</a><br><a class="trace-frames" data-frame-id="83" href="#">activesupport (5.1.6) lib/active_support/tagged_logging.rb:69:in `block in tagged'</a><br><a class="trace-frames" data-frame-id="84" href="#">activesupport (5.1.6) lib/active_support/tagged_logging.rb:26:in `tagged'</a><br><a class="trace-frames" data-frame-id="85" href="#">activesupport (5.1.6) lib/active_support/tagged_logging.rb:69:in `tagged'</a><br><a class="trace-frames" data-frame-id="86" href="#">railties (5.1.6) lib/rails/rack/logger.rb:24:in `call'</a><br><a class="trace-frames" data-frame-id="87" href="#">sprockets-rails (3.2.1) lib/sprockets/rails/quiet_assets.rb:13:in `call'</a><br><a class="trace-frames" data-frame-id="88" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'</a><br><a class="trace-frames" data-frame-id="89" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/request_id.rb:25:in `call'</a><br><a class="trace-frames" data-frame-id="90" href="#">rack (2.0.5) lib/rack/method_override.rb:22:in `call'</a><br><a class="trace-frames" data-frame-id="91" href="#">rack (2.0.5) lib/rack/runtime.rb:22:in `call'</a><br><a class="trace-frames" data-frame-id="92" href="#">activesupport (5.1.6) lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'</a><br><a class="trace-frames" data-frame-id="93" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/executor.rb:12:in `call'</a><br><a class="trace-frames" data-frame-id="94" href="#">actionpack (5.1.6) lib/action_dispatch/middleware/static.rb:125:in `call'</a><br><a class="trace-frames" data-frame-id="95" href="#">rack (2.0.5) lib/rack/sendfile.rb:111:in `call'</a><br><a class="trace-frames" data-frame-id="96" href="#">webpacker (3.5.5) lib/webpacker/dev_server_proxy.rb:22:in `perform_request'</a><br><a class="trace-frames" data-frame-id="97" href="#">rack-proxy (0.6.4) lib/rack/proxy.rb:57:in `call'</a><br><a class="trace-frames" data-frame-id="98" href="#">railties (5.1.6) lib/rails/engine.rb:522:in `call'</a><br><a class="trace-frames" data-frame-id="99" href="#">puma (3.12.0) lib/puma/configuration.rb:225:in `call'</a><br><a class="trace-frames" data-frame-id="100" href="#">puma (3.12.0) lib/puma/server.rb:658:in `handle_request'</a><br><a class="trace-frames" data-frame-id="101" href="#">puma (3.12.0) lib/puma/server.rb:472:in `process_client'</a><br><a class="trace-frames" data-frame-id="102" href="#">puma (3.12.0) lib/puma/server.rb:332:in `block in run'</a><br><a class="trace-frames" data-frame-id="103" href="#">puma (3.12.0) lib/puma/thread_pool.rb:133:in `block in spawn_thread'</a><br></code></pre>
3515 </div>
3516
3517 <script type="text/javascript">
3518 var traceFrames = document.getElementsByClassName('trace-frames');
3519 var selectedFrame, currentSource = document.getElementById('frame-source-0');
3520
3521 // Add click listeners for all stack frames
3522 for (var i = 0; i < traceFrames.length; i++) {
3523 traceFrames[i].addEventListener('click', function(e) {
3524 e.preventDefault();
3525 var target = e.target;
3526 var frame_id = target.dataset.frameId;
3527
3528 if (selectedFrame) {
3529 selectedFrame.className = selectedFrame.className.replace("selected", "");
3530 }
3531
3532 target.className += " selected";
3533 selectedFrame = target;
3534
3535 // Change the extracted source code
3536 changeSourceExtract(frame_id);
3537 });
3538
3539 function changeSourceExtract(frame_id) {
3540 var el = document.getElementById('frame-source-' + frame_id);
3541 if (currentSource && el) {
3542 currentSource.className += " hidden";
3543 el.className = el.className.replace(" hidden", "");
3544 currentSource = el;
3545 }
3546 }
3547 }
3548 </script>
3549</div>
3550
3551
3552<h2 style="margin-top: 30px">Request</h2>
3553<p><b>Parameters</b>:</p> <pre>{"content"=>"This shoul be appended and appear on top of all comments", "post_id"=>"a49e4831-c181-4807-a2bb-56a5b85d6571", "format"=>"json"}
3554</pre>
3555
3556<div class="details">
3557 <div class="summary"><a href="#" onclick="return toggleSessionDump()">Toggle session dump</a></div>
3558 <div id="session_dump" style="display:none"><pre></pre></div>
3559</div>
3560
3561<div class="details">
3562 <div class="summary"><a href="#" onclick="return toggleEnvDump()">Toggle env dump</a></div>
3563 <div id="env_dump" style="display:none"><pre>GATEWAY_INTERFACE: "CGI/1.2"
3564HTTP_ACCEPT: "*/*"
3565HTTP_ACCEPT_ENCODING: "gzip;q=1.0, compress;q=0.5"
3566HTTP_ACCEPT_LANGUAGE: "en;q=1.0"
3567HTTP_VERSION: "HTTP/1.1"
3568HTTP_X_FORWARDED_FOR: "47.247.51.86"
3569ORIGINAL_SCRIPT_NAME: ""
3570REMOTE_ADDR: "127.0.0.1"
3571SERVER_NAME: "9bd8b388.ngrok.io"
3572SERVER_PROTOCOL: "HTTP/1.1"</pre></div>
3573</div>
3574
3575<h2 style="margin-top: 30px">Response</h2>
3576<p><b>Headers</b>:</p> <pre>None</pre>
3577
3578</div>
3579
3580
3581</body>
3582</html>