Advertisement
Guest User

Untitled

a guest
Jun 29th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 198.88 KB | None | 0 0
  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.     NoMethodError
  160.       in Api::V1::FeedbacksController#update
  161.   </h1>
  162. </header>
  163.  
  164. <div id="container">
  165.   <h2>undefined method `email&#39; for nil:NilClass</h2>
  166.  
  167.       <div class="source " id="frame-source-0">
  168.       <div class="info">
  169.         Extracted source (around line <strong>#18</strong>):
  170.       </div>
  171.       <div class="data">
  172.         <table cellpadding="0" cellspacing="0" class="lines">
  173.           <tr>
  174.             <td>
  175.               <pre class="line_numbers">
  176. <span>16</span>
  177. <span>17</span>
  178. <span>18</span>
  179. <span>19</span>
  180. <span>20</span>
  181. <span>21</span>
  182.               </pre>
  183.             </td>
  184. <td width="100%">
  185. <pre>
  186. <div class="line">    recipients.each do |recipient|
  187. </div><div class="line">      @recipient = recipient
  188. </div><div class="line active">      mail  to: recipient.email, template_name: template
  189. </div><div class="line">    end
  190. </div><div class="line">  end
  191. </div><div class="line">end
  192. </div>
  193. </pre>
  194. </td>
  195.           </tr>
  196.         </table>
  197.       </div>
  198.     </div>
  199.     <div class="source hidden" id="frame-source-1">
  200.       <div class="info">
  201.         Extracted source (around line <strong>#16</strong>):
  202.       </div>
  203.       <div class="data">
  204.         <table cellpadding="0" cellspacing="0" class="lines">
  205.           <tr>
  206.             <td>
  207.               <pre class="line_numbers">
  208. <span>14</span>
  209. <span>15</span>
  210. <span>16</span>
  211. <span>17</span>
  212. <span>18</span>
  213. <span>19</span>
  214.               </pre>
  215.             </td>
  216. <td width="100%">
  217. <pre>
  218. <div class="line">    @feedback = feedback
  219. </div><div class="line">    # @teams_count = teams_count
  220. </div><div class="line active">    recipients.each do |recipient|
  221. </div><div class="line">      @recipient = recipient
  222. </div><div class="line">      mail  to: recipient.email, template_name: template
  223. </div><div class="line">    end
  224. </div>
  225. </pre>
  226. </td>
  227.           </tr>
  228.         </table>
  229.       </div>
  230.     </div>
  231.     <div class="source hidden" id="frame-source-2">
  232.       <div class="info">
  233.         Extracted source (around line <strong>#16</strong>):
  234.       </div>
  235.       <div class="data">
  236.         <table cellpadding="0" cellspacing="0" class="lines">
  237.           <tr>
  238.             <td>
  239.               <pre class="line_numbers">
  240. <span>14</span>
  241. <span>15</span>
  242. <span>16</span>
  243. <span>17</span>
  244. <span>18</span>
  245. <span>19</span>
  246.               </pre>
  247.             </td>
  248. <td width="100%">
  249. <pre>
  250. <div class="line">    @feedback = feedback
  251. </div><div class="line">    # @teams_count = teams_count
  252. </div><div class="line active">    recipients.each do |recipient|
  253. </div><div class="line">      @recipient = recipient
  254. </div><div class="line">      mail  to: recipient.email, template_name: template
  255. </div><div class="line">    end
  256. </div>
  257. </pre>
  258. </td>
  259.           </tr>
  260.         </table>
  261.       </div>
  262.     </div>
  263.     <div class="source hidden" id="frame-source-3">
  264.       <div class="info">
  265.         Extracted source (around line <strong>#5</strong>):
  266.       </div>
  267.       <div class="data">
  268.         <table cellpadding="0" cellspacing="0" class="lines">
  269.           <tr>
  270.             <td>
  271.               <pre class="line_numbers">
  272. <span>3</span>
  273. <span>4</span>
  274. <span>5</span>
  275. <span>6</span>
  276. <span>7</span>
  277. <span>8</span>
  278.               </pre>
  279.             </td>
  280. <td width="100%">
  281. <pre>
  282. <div class="line">
  283. </div><div class="line">  def instant_report(feedback, recipients)
  284. </div><div class="line active">    send_feedback(feedback, recipients, __method__)
  285. </div><div class="line">  end
  286. </div><div class="line">
  287. </div><div class="line">  def summary(feedback, recipients)
  288. </div>
  289. </pre>
  290. </td>
  291.           </tr>
  292.         </table>
  293.       </div>
  294.     </div>
  295.     <div class="source hidden" id="frame-source-4">
  296.       <div class="info">
  297.         Extracted source (around line <strong>#198</strong>):
  298.       </div>
  299.       <div class="data">
  300.         <table cellpadding="0" cellspacing="0" class="lines">
  301.           <tr>
  302.             <td>
  303.               <pre class="line_numbers">
  304. <span>196</span>
  305. <span>197</span>
  306. <span>198</span>
  307. <span>199</span>
  308. <span>200</span>
  309. <span>201</span>
  310.               </pre>
  311.             </td>
  312. <td width="100%">
  313. <pre>
  314. <div class="line">      # which is *not* necessarily the same as the action name.
  315. </div><div class="line">      def process_action(method_name, *args)
  316. </div><div class="line active">        send_action(method_name, *args)
  317. </div><div class="line">      end
  318. </div><div class="line">
  319. </div><div class="line">      # Actually call the method associated with the action. Override
  320. </div>
  321. </pre>
  322. </td>
  323.           </tr>
  324.         </table>
  325.       </div>
  326.     </div>
  327.     <div class="source hidden" id="frame-source-5">
  328.       <div class="info">
  329.         Extracted source (around line <strong>#20</strong>):
  330.       </div>
  331.       <div class="data">
  332.         <table cellpadding="0" cellspacing="0" class="lines">
  333.           <tr>
  334.             <td>
  335.               <pre class="line_numbers">
  336. <span>18</span>
  337. <span>19</span>
  338. <span>20</span>
  339. <span>21</span>
  340. <span>22</span>
  341. <span>23</span>
  342.               </pre>
  343.             </td>
  344. <td width="100%">
  345. <pre>
  346. <div class="line">    def process_action(*args)
  347. </div><div class="line">      run_callbacks(:process_action) do
  348. </div><div class="line active">        super
  349. </div><div class="line">      end
  350. </div><div class="line">    end
  351. </div><div class="line">
  352. </div>
  353. </pre>
  354. </td>
  355.           </tr>
  356.         </table>
  357.       </div>
  358.     </div>
  359.     <div class="source hidden" id="frame-source-6">
  360.       <div class="info">
  361.         Extracted source (around line <strong>#88</strong>):
  362.       </div>
  363.       <div class="data">
  364.         <table cellpadding="0" cellspacing="0" class="lines">
  365.           <tr>
  366.             <td>
  367.               <pre class="line_numbers">
  368. <span>86</span>
  369. <span>87</span>
  370. <span>88</span>
  371. <span>89</span>
  372. <span>90</span>
  373. <span>91</span>
  374.               </pre>
  375.             </td>
  376. <td width="100%">
  377. <pre>
  378. <div class="line">    def __run_callbacks__(callbacks, &amp;block)
  379. </div><div class="line">      if callbacks.empty?
  380. </div><div class="line active">        yield if block_given?
  381. </div><div class="line">      else
  382. </div><div class="line">        runner = callbacks.compile
  383. </div><div class="line">        e = Filters::Environment.new(self, false, nil, block)
  384. </div>
  385. </pre>
  386. </td>
  387.           </tr>
  388.         </table>
  389.       </div>
  390.     </div>
  391.     <div class="source hidden" id="frame-source-7">
  392.       <div class="info">
  393.         Extracted source (around line <strong>#778</strong>):
  394.       </div>
  395.       <div class="data">
  396.         <table cellpadding="0" cellspacing="0" class="lines">
  397.           <tr>
  398.             <td>
  399.               <pre class="line_numbers">
  400. <span>776</span>
  401. <span>777</span>
  402. <span>778</span>
  403. <span>779</span>
  404. <span>780</span>
  405. <span>781</span>
  406.               </pre>
  407.             </td>
  408. <td width="100%">
  409. <pre>
  410. <div class="line">          module_eval &lt;&lt;-RUBY, __FILE__, __LINE__ + 1
  411. </div><div class="line">            def _run_#{name}_callbacks(&amp;block)
  412. </div><div class="line active">              __run_callbacks__(_#{name}_callbacks, &amp;block)
  413. </div><div class="line">            end
  414. </div><div class="line">          RUBY
  415. </div><div class="line">        end
  416. </div>
  417. </pre>
  418. </td>
  419.           </tr>
  420.         </table>
  421.       </div>
  422.     </div>
  423.     <div class="source hidden" id="frame-source-8">
  424.       <div class="info">
  425.         Extracted source (around line <strong>#81</strong>):
  426.       </div>
  427.       <div class="data">
  428.         <table cellpadding="0" cellspacing="0" class="lines">
  429.           <tr>
  430.             <td>
  431.               <pre class="line_numbers">
  432. <span>79</span>
  433. <span>80</span>
  434. <span>81</span>
  435. <span>82</span>
  436. <span>83</span>
  437. <span>84</span>
  438.               </pre>
  439.             </td>
  440. <td width="100%">
  441. <pre>
  442. <div class="line">    #   end
  443. </div><div class="line">    def run_callbacks(kind, &amp;block)
  444. </div><div class="line active">      send &quot;_run_#{kind}_callbacks&quot;, &amp;block
  445. </div><div class="line">    end
  446. </div><div class="line">
  447. </div><div class="line">    private
  448. </div>
  449. </pre>
  450. </td>
  451.           </tr>
  452.         </table>
  453.       </div>
  454.     </div>
  455.     <div class="source hidden" id="frame-source-9">
  456.       <div class="info">
  457.         Extracted source (around line <strong>#19</strong>):
  458.       </div>
  459.       <div class="data">
  460.         <table cellpadding="0" cellspacing="0" class="lines">
  461.           <tr>
  462.             <td>
  463.               <pre class="line_numbers">
  464. <span>17</span>
  465. <span>18</span>
  466. <span>19</span>
  467. <span>20</span>
  468. <span>21</span>
  469. <span>22</span>
  470.               </pre>
  471.             </td>
  472. <td width="100%">
  473. <pre>
  474. <div class="line">    # process_action callbacks around the normal behavior.
  475. </div><div class="line">    def process_action(*args)
  476. </div><div class="line active">      run_callbacks(:process_action) do
  477. </div><div class="line">        super
  478. </div><div class="line">      end
  479. </div><div class="line">    end
  480. </div>
  481. </pre>
  482. </td>
  483.           </tr>
  484.         </table>
  485.       </div>
  486.     </div>
  487.     <div class="source hidden" id="frame-source-10">
  488.       <div class="info">
  489.         Extracted source (around line <strong>#137</strong>):
  490.       </div>
  491.       <div class="data">
  492.         <table cellpadding="0" cellspacing="0" class="lines">
  493.           <tr>
  494.             <td>
  495.               <pre class="line_numbers">
  496. <span>135</span>
  497. <span>136</span>
  498. <span>137</span>
  499. <span>138</span>
  500. <span>139</span>
  501. <span>140</span>
  502.               </pre>
  503.             </td>
  504. <td width="100%">
  505. <pre>
  506. <div class="line">      @_response_body = nil
  507. </div><div class="line">
  508. </div><div class="line active">      process_action(action_name, *args)
  509. </div><div class="line">    end
  510. </div><div class="line">
  511. </div><div class="line">    # Delegates to the class&#39; #controller_path
  512. </div>
  513. </pre>
  514. </td>
  515.           </tr>
  516.         </table>
  517.       </div>
  518.     </div>
  519.     <div class="source hidden" id="frame-source-11">
  520.       <div class="info">
  521.         Extracted source (around line <strong>#30</strong>):
  522.       </div>
  523.       <div class="data">
  524.         <table cellpadding="0" cellspacing="0" class="lines">
  525.           <tr>
  526.             <td>
  527.               <pre class="line_numbers">
  528. <span>28</span>
  529. <span>29</span>
  530. <span>30</span>
  531. <span>31</span>
  532. <span>32</span>
  533. <span>33</span>
  534.               </pre>
  535.             </td>
  536. <td width="100%">
  537. <pre>
  538. <div class="line">    def process(*) #:nodoc:
  539. </div><div class="line">      old_config, I18n.config = I18n.config, I18nProxy.new(I18n.config, lookup_context)
  540. </div><div class="line active">      super
  541. </div><div class="line">    ensure
  542. </div><div class="line">      I18n.config = old_config
  543. </div><div class="line">    end
  544. </div>
  545. </pre>
  546. </td>
  547.           </tr>
  548.         </table>
  549.       </div>
  550.     </div>
  551.     <div class="source hidden" id="frame-source-12">
  552.       <div class="info">
  553.         Extracted source (around line <strong>#596</strong>):
  554.       </div>
  555.       <div class="data">
  556.         <table cellpadding="0" cellspacing="0" class="lines">
  557.           <tr>
  558.             <td>
  559.               <pre class="line_numbers">
  560. <span>594</span>
  561. <span>595</span>
  562. <span>596</span>
  563. <span>597</span>
  564. <span>598</span>
  565. <span>599</span>
  566.               </pre>
  567.             </td>
  568. <td width="100%">
  569. <pre>
  570. <div class="line">        lookup_context.skip_default_locale!
  571. </div><div class="line">
  572. </div><div class="line active">        super
  573. </div><div class="line">        @_message = NullMail.new unless @_mail_was_called
  574. </div><div class="line">      end
  575. </div><div class="line">    end
  576. </div>
  577. </pre>
  578. </td>
  579.           </tr>
  580.         </table>
  581.       </div>
  582.     </div>
  583.     <div class="source hidden" id="frame-source-13">
  584.       <div class="info">
  585.         Extracted source (around line <strong>#164</strong>):
  586.       </div>
  587.       <div class="data">
  588.         <table cellpadding="0" cellspacing="0" class="lines">
  589.           <tr>
  590.             <td>
  591.               <pre class="line_numbers">
  592. <span>162</span>
  593. <span>163</span>
  594. <span>164</span>
  595. <span>165</span>
  596. <span>166</span>
  597. <span>167</span>
  598.               </pre>
  599.             </td>
  600. <td width="100%">
  601. <pre>
  602. <div class="line">      def instrument(name, payload = {})
  603. </div><div class="line">        if notifier.listening?(name)
  604. </div><div class="line active">          instrumenter.instrument(name, payload) { yield payload if block_given? }
  605. </div><div class="line">        else
  606. </div><div class="line">          yield payload if block_given?
  607. </div><div class="line">        end
  608. </div>
  609. </pre>
  610. </td>
  611.           </tr>
  612.         </table>
  613.       </div>
  614.     </div>
  615.     <div class="source hidden" id="frame-source-14">
  616.       <div class="info">
  617.         Extracted source (around line <strong>#20</strong>):
  618.       </div>
  619.       <div class="data">
  620.         <table cellpadding="0" cellspacing="0" class="lines">
  621.           <tr>
  622.             <td>
  623.               <pre class="line_numbers">
  624. <span>18</span>
  625. <span>19</span>
  626. <span>20</span>
  627. <span>21</span>
  628. <span>22</span>
  629. <span>23</span>
  630.               </pre>
  631.             </td>
  632. <td width="100%">
  633. <pre>
  634. <div class="line">        start name, payload
  635. </div><div class="line">        begin
  636. </div><div class="line active">          yield payload
  637. </div><div class="line">        rescue Exception =&gt; e
  638. </div><div class="line">          payload[:exception] = [e.class.name, e.message]
  639. </div><div class="line">          raise e
  640. </div>
  641. </pre>
  642. </td>
  643.           </tr>
  644.         </table>
  645.       </div>
  646.     </div>
  647.     <div class="source hidden" id="frame-source-15">
  648.       <div class="info">
  649.         Extracted source (around line <strong>#164</strong>):
  650.       </div>
  651.       <div class="data">
  652.         <table cellpadding="0" cellspacing="0" class="lines">
  653.           <tr>
  654.             <td>
  655.               <pre class="line_numbers">
  656. <span>162</span>
  657. <span>163</span>
  658. <span>164</span>
  659. <span>165</span>
  660. <span>166</span>
  661. <span>167</span>
  662.               </pre>
  663.             </td>
  664. <td width="100%">
  665. <pre>
  666. <div class="line">      def instrument(name, payload = {})
  667. </div><div class="line">        if notifier.listening?(name)
  668. </div><div class="line active">          instrumenter.instrument(name, payload) { yield payload if block_given? }
  669. </div><div class="line">        else
  670. </div><div class="line">          yield payload if block_given?
  671. </div><div class="line">        end
  672. </div>
  673. </pre>
  674. </td>
  675.           </tr>
  676.         </table>
  677.       </div>
  678.     </div>
  679.     <div class="source hidden" id="frame-source-16">
  680.       <div class="info">
  681.         Extracted source (around line <strong>#593</strong>):
  682.       </div>
  683.       <div class="data">
  684.         <table cellpadding="0" cellspacing="0" class="lines">
  685.           <tr>
  686.             <td>
  687.               <pre class="line_numbers">
  688. <span>591</span>
  689. <span>592</span>
  690. <span>593</span>
  691. <span>594</span>
  692. <span>595</span>
  693. <span>596</span>
  694.               </pre>
  695.             </td>
  696. <td width="100%">
  697. <pre>
  698. <div class="line">      }
  699. </div><div class="line">
  700. </div><div class="line active">      ActiveSupport::Notifications.instrument(&quot;process.action_mailer&quot;, payload) do
  701. </div><div class="line">        lookup_context.skip_default_locale!
  702. </div><div class="line">
  703. </div><div class="line">        super
  704. </div>
  705. </pre>
  706. </td>
  707.           </tr>
  708.         </table>
  709.       </div>
  710.     </div>
  711.     <div class="source hidden" id="frame-source-17">
  712.       <div class="info">
  713.         Extracted source (around line <strong>#584</strong>):
  714.       </div>
  715.       <div class="data">
  716.         <table cellpadding="0" cellspacing="0" class="lines">
  717.           <tr>
  718.             <td>
  719.               <pre class="line_numbers">
  720. <span>582</span>
  721. <span>583</span>
  722. <span>584</span>
  723. <span>585</span>
  724. <span>586</span>
  725. <span>587</span>
  726.               </pre>
  727.             </td>
  728. <td width="100%">
  729. <pre>
  730. <div class="line">      @_mail_was_called = false
  731. </div><div class="line">      @_message = Mail.new
  732. </div><div class="line active">      process(method_name, *args) if method_name
  733. </div><div class="line">    end
  734. </div><div class="line">
  735. </div><div class="line">    def process(method_name, *args) #:nodoc:
  736. </div>
  737. </pre>
  738. </td>
  739.           </tr>
  740.         </table>
  741.       </div>
  742.     </div>
  743.     <div class="source hidden" id="frame-source-18">
  744.       <div class="info">
  745.         Extracted source (around line <strong>#25</strong>):
  746.       </div>
  747.       <div class="data">
  748.         <table cellpadding="0" cellspacing="0" class="lines">
  749.           <tr>
  750.             <td>
  751.               <pre class="line_numbers">
  752. <span>23</span>
  753. <span>24</span>
  754. <span>25</span>
  755. <span>26</span>
  756. <span>27</span>
  757. <span>28</span>
  758.               </pre>
  759.             </td>
  760. <td width="100%">
  761. <pre>
  762. <div class="line">
  763. </div><div class="line">    def __getobj__ #:nodoc:
  764. </div><div class="line active">      @obj ||= @mailer.send(:new, @mail_method, *@args).message
  765. </div><div class="line">    end
  766. </div><div class="line">
  767. </div><div class="line">    def __setobj__(obj) #:nodoc:
  768. </div>
  769. </pre>
  770. </td>
  771.           </tr>
  772.         </table>
  773.       </div>
  774.     </div>
  775.     <div class="source hidden" id="frame-source-19">
  776.       <div class="info">
  777.         Extracted source (around line <strong>#25</strong>):
  778.       </div>
  779.       <div class="data">
  780.         <table cellpadding="0" cellspacing="0" class="lines">
  781.           <tr>
  782.             <td>
  783.               <pre class="line_numbers">
  784. <span>23</span>
  785. <span>24</span>
  786. <span>25</span>
  787. <span>26</span>
  788. <span>27</span>
  789. <span>28</span>
  790.               </pre>
  791.             </td>
  792. <td width="100%">
  793. <pre>
  794. <div class="line">
  795. </div><div class="line">    def __getobj__ #:nodoc:
  796. </div><div class="line active">      @obj ||= @mailer.send(:new, @mail_method, *@args).message
  797. </div><div class="line">    end
  798. </div><div class="line">
  799. </div><div class="line">    def __setobj__(obj) #:nodoc:
  800. </div>
  801. </pre>
  802. </td>
  803.           </tr>
  804.         </table>
  805.       </div>
  806.     </div>
  807.     <div class="source hidden" id="frame-source-20">
  808.       <div class="info">
  809.         Extracted source (around line <strong>#34</strong>):
  810.       </div>
  811.       <div class="data">
  812.         <table cellpadding="0" cellspacing="0" class="lines">
  813.           <tr>
  814.             <td>
  815.               <pre class="line_numbers">
  816. <span>32</span>
  817. <span>33</span>
  818. <span>34</span>
  819. <span>35</span>
  820. <span>36</span>
  821. <span>37</span>
  822.               </pre>
  823.             </td>
  824. <td width="100%">
  825. <pre>
  826. <div class="line">    # Returns the Mail::Message object
  827. </div><div class="line">    def message
  828. </div><div class="line active">      __getobj__
  829. </div><div class="line">    end
  830. </div><div class="line">
  831. </div><div class="line">    # Enqueues the email to be delivered through Active Job. When the
  832. </div>
  833. </pre>
  834. </td>
  835.           </tr>
  836.         </table>
  837.       </div>
  838.     </div>
  839.     <div class="source hidden" id="frame-source-21">
  840.       <div class="info">
  841.         Extracted source (around line <strong>#85</strong>):
  842.       </div>
  843.       <div class="data">
  844.         <table cellpadding="0" cellspacing="0" class="lines">
  845.           <tr>
  846.             <td>
  847.               <pre class="line_numbers">
  848. <span>83</span>
  849. <span>84</span>
  850. <span>85</span>
  851. <span>86</span>
  852. <span>87</span>
  853. <span>88</span>
  854.               </pre>
  855.             </td>
  856. <td width="100%">
  857. <pre>
  858. <div class="line">    #
  859. </div><div class="line">    def deliver_now
  860. </div><div class="line active">      message.deliver
  861. </div><div class="line">    end
  862. </div><div class="line">
  863. </div><div class="line">    def deliver! #:nodoc:
  864. </div>
  865. </pre>
  866. </td>
  867.           </tr>
  868.         </table>
  869.       </div>
  870.     </div>
  871.     <div class="source hidden" id="frame-source-22">
  872.       <div class="info">
  873.         Extracted source (around line <strong>#10</strong>):
  874.       </div>
  875.       <div class="data">
  876.         <table cellpadding="0" cellspacing="0" class="lines">
  877.           <tr>
  878.             <td>
  879.               <pre class="line_numbers">
  880. <span>8</span>
  881. <span>9</span>
  882. <span>10</span>
  883. <span>11</span>
  884. <span>12</span>
  885. <span>13</span>
  886.               </pre>
  887.             </td>
  888. <td width="100%">
  889. <pre>
  890. <div class="line">
  891. </div><div class="line">    def perform(mailer, mail_method, delivery_method, *args) # :nodoc:
  892. </div><div class="line active">      mailer.constantize.public_send(mail_method, *args).send(delivery_method)
  893. </div><div class="line">    end
  894. </div><div class="line">  end
  895. </div><div class="line">end
  896. </div>
  897. </pre>
  898. </td>
  899.           </tr>
  900.         </table>
  901.       </div>
  902.     </div>
  903.     <div class="source hidden" id="frame-source-23">
  904.       <div class="info">
  905.         Extracted source (around line <strong>#32</strong>):
  906.       </div>
  907.       <div class="data">
  908.         <table cellpadding="0" cellspacing="0" class="lines">
  909.           <tr>
  910.             <td>
  911.               <pre class="line_numbers">
  912. <span>30</span>
  913. <span>31</span>
  914. <span>32</span>
  915. <span>33</span>
  916. <span>34</span>
  917. <span>35</span>
  918.               </pre>
  919.             </td>
  920. <td width="100%">
  921. <pre>
  922. <div class="line">      deserialize_arguments_if_needed
  923. </div><div class="line">      run_callbacks :perform do
  924. </div><div class="line active">        perform(*arguments)
  925. </div><div class="line">      end
  926. </div><div class="line">    rescue =&gt; exception
  927. </div><div class="line">      rescue_with_handler(exception) || raise(exception)
  928. </div>
  929. </pre>
  930. </td>
  931.           </tr>
  932.         </table>
  933.       </div>
  934.     </div>
  935.     <div class="source hidden" id="frame-source-24">
  936.       <div class="info">
  937.         Extracted source (around line <strong>#117</strong>):
  938.       </div>
  939.       <div class="data">
  940.         <table cellpadding="0" cellspacing="0" class="lines">
  941.           <tr>
  942.             <td>
  943.               <pre class="line_numbers">
  944. <span>115</span>
  945. <span>116</span>
  946. <span>117</span>
  947. <span>118</span>
  948. <span>119</span>
  949. <span>120</span>
  950.               </pre>
  951.             </td>
  952. <td width="100%">
  953. <pre>
  954. <div class="line">        def call(env)
  955. </div><div class="line">          block = env.run_block
  956. </div><div class="line active">          env.value = !env.halted &amp;&amp; (!block || block.call)
  957. </div><div class="line">          env
  958. </div><div class="line">        end
  959. </div><div class="line">      end
  960. </div>
  961. </pre>
  962. </td>
  963.           </tr>
  964.         </table>
  965.       </div>
  966.     </div>
  967.     <div class="source hidden" id="frame-source-25">
  968.       <div class="info">
  969.         Extracted source (around line <strong>#555</strong>):
  970.       </div>
  971.       <div class="data">
  972.         <table cellpadding="0" cellspacing="0" class="lines">
  973.           <tr>
  974.             <td>
  975.               <pre class="line_numbers">
  976. <span>553</span>
  977. <span>554</span>
  978. <span>555</span>
  979. <span>556</span>
  980. <span>557</span>
  981. <span>558</span>
  982.               </pre>
  983.             </td>
  984. <td width="100%">
  985. <pre>
  986. <div class="line">      def compile
  987. </div><div class="line">        @callbacks || @mutex.synchronize do
  988. </div><div class="line active">          final_sequence = CallbackSequence.new { |env| Filters::ENDING.call(env) }
  989. </div><div class="line">          @callbacks ||= @chain.reverse.inject(final_sequence) do |callback_sequence, callback|
  990. </div><div class="line">            callback.apply callback_sequence
  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>#505</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>503</span>
  1009. <span>504</span>
  1010. <span>505</span>
  1011. <span>506</span>
  1012. <span>507</span>
  1013. <span>508</span>
  1014.               </pre>
  1015.             </td>
  1016. <td width="100%">
  1017. <pre>
  1018. <div class="line">      def call(*args)
  1019. </div><div class="line">        @before.each { |b| b.call(*args) }
  1020. </div><div class="line active">        value = @call.call(*args)
  1021. </div><div class="line">        @after.each { |a| a.call(*args) }
  1022. </div><div class="line">        value
  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>#498</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>496</span>
  1041. <span>497</span>
  1042. <span>498</span>
  1043. <span>499</span>
  1044. <span>500</span>
  1045. <span>501</span>
  1046.               </pre>
  1047.             </td>
  1048. <td width="100%">
  1049. <pre>
  1050. <div class="line">        CallbackSequence.new do |*args|
  1051. </div><div class="line">          around.call(*args) {
  1052. </div><div class="line active">            self.call(*args)
  1053. </div><div class="line">          }
  1054. </div><div class="line">        end
  1055. </div><div class="line">      end
  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>#343</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>341</span>
  1073. <span>342</span>
  1074. <span>343</span>
  1075. <span>344</span>
  1076. <span>345</span>
  1077. <span>346</span>
  1078.               </pre>
  1079.             </td>
  1080. <td width="100%">
  1081. <pre>
  1082. <div class="line">          callback_sequence.around do |env, &amp;run|
  1083. </div><div class="line">            user_callback.call(env.target, env.value) {
  1084. </div><div class="line active">              env = run.call env
  1085. </div><div class="line">              env.value
  1086. </div><div class="line">            }
  1087. </div><div class="line">            env
  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>#257</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>255</span>
  1105. <span>256</span>
  1106. <span>257</span>
  1107. <span>258</span>
  1108. <span>259</span>
  1109. <span>260</span>
  1110.               </pre>
  1111.             </td>
  1112. <td width="100%">
  1113. <pre>
  1114. <div class="line">        self.locale    = tmp_locale
  1115. </div><div class="line">      end
  1116. </div><div class="line active">      yield
  1117. </div><div class="line">    ensure
  1118. </div><div class="line">      self.locale = current_locale if tmp_locale
  1119. </div><div class="line">    end
  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>#7</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>5</span>
  1137. <span>6</span>
  1138. <span>7</span>
  1139. <span>8</span>
  1140. <span>9</span>
  1141. <span>10</span>
  1142.               </pre>
  1143.             </td>
  1144. <td width="100%">
  1145. <pre>
  1146. <div class="line">    included do
  1147. </div><div class="line">      around_perform do |job, block, _|
  1148. </div><div class="line active">        I18n.with_locale(job.locale, &amp;block)
  1149. </div><div class="line">      end
  1150. </div><div class="line">    end
  1151. </div><div class="line">  end
  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>#441</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>439</span>
  1169. <span>440</span>
  1170. <span>441</span>
  1171. <span>442</span>
  1172. <span>443</span>
  1173. <span>444</span>
  1174.               </pre>
  1175.             </td>
  1176. <td width="100%">
  1177. <pre>
  1178. <div class="line">            return lambda { |target, _, &amp;block|
  1179. </div><div class="line">              raise ArgumentError unless block
  1180. </div><div class="line active">              target.instance_exec(target, block, &amp;filter)
  1181. </div><div class="line">            }
  1182. </div><div class="line">          end
  1183. </div><div class="line">
  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>#441</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>439</span>
  1201. <span>440</span>
  1202. <span>441</span>
  1203. <span>442</span>
  1204. <span>443</span>
  1205. <span>444</span>
  1206.               </pre>
  1207.             </td>
  1208. <td width="100%">
  1209. <pre>
  1210. <div class="line">            return lambda { |target, _, &amp;block|
  1211. </div><div class="line">              raise ArgumentError unless block
  1212. </div><div class="line active">              target.instance_exec(target, block, &amp;filter)
  1213. </div><div class="line">            }
  1214. </div><div class="line">          end
  1215. </div><div class="line">
  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>#342</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>340</span>
  1233. <span>341</span>
  1234. <span>342</span>
  1235. <span>343</span>
  1236. <span>344</span>
  1237. <span>345</span>
  1238.               </pre>
  1239.             </td>
  1240. <td width="100%">
  1241. <pre>
  1242. <div class="line">        def self.simple(callback_sequence, user_callback)
  1243. </div><div class="line">          callback_sequence.around do |env, &amp;run|
  1244. </div><div class="line active">            user_callback.call(env.target, env.value) {
  1245. </div><div class="line">              env = run.call env
  1246. </div><div class="line">              env.value
  1247. </div><div class="line">            }
  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>#497</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>495</span>
  1265. <span>496</span>
  1266. <span>497</span>
  1267. <span>498</span>
  1268. <span>499</span>
  1269. <span>500</span>
  1270.               </pre>
  1271.             </td>
  1272. <td width="100%">
  1273. <pre>
  1274. <div class="line">      def around(&amp;around)
  1275. </div><div class="line">        CallbackSequence.new do |*args|
  1276. </div><div class="line active">          around.call(*args) {
  1277. </div><div class="line">            self.call(*args)
  1278. </div><div class="line">          }
  1279. </div><div class="line">        end
  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>#505</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>503</span>
  1297. <span>504</span>
  1298. <span>505</span>
  1299. <span>506</span>
  1300. <span>507</span>
  1301. <span>508</span>
  1302.               </pre>
  1303.             </td>
  1304. <td width="100%">
  1305. <pre>
  1306. <div class="line">      def call(*args)
  1307. </div><div class="line">        @before.each { |b| b.call(*args) }
  1308. </div><div class="line active">        value = @call.call(*args)
  1309. </div><div class="line">        @after.each { |a| a.call(*args) }
  1310. </div><div class="line">        value
  1311. </div><div class="line">      end
  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>#498</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>496</span>
  1329. <span>497</span>
  1330. <span>498</span>
  1331. <span>499</span>
  1332. <span>500</span>
  1333. <span>501</span>
  1334.               </pre>
  1335.             </td>
  1336. <td width="100%">
  1337. <pre>
  1338. <div class="line">        CallbackSequence.new do |*args|
  1339. </div><div class="line">          around.call(*args) {
  1340. </div><div class="line active">            self.call(*args)
  1341. </div><div class="line">          }
  1342. </div><div class="line">        end
  1343. </div><div class="line">      end
  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>#343</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>341</span>
  1361. <span>342</span>
  1362. <span>343</span>
  1363. <span>344</span>
  1364. <span>345</span>
  1365. <span>346</span>
  1366.               </pre>
  1367.             </td>
  1368. <td width="100%">
  1369. <pre>
  1370. <div class="line">          callback_sequence.around do |env, &amp;run|
  1371. </div><div class="line">            user_callback.call(env.target, env.value) {
  1372. </div><div class="line active">              env = run.call env
  1373. </div><div class="line">              env.value
  1374. </div><div class="line">            }
  1375. </div><div class="line">            env
  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>#23</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>21</span>
  1393. <span>22</span>
  1394. <span>23</span>
  1395. <span>24</span>
  1396. <span>25</span>
  1397. <span>26</span>
  1398.               </pre>
  1399.             </td>
  1400. <td width="100%">
  1401. <pre>
  1402. <div class="line">          ActiveSupport::Notifications.instrument(&quot;perform_start.active_job&quot;, payload.dup)
  1403. </div><div class="line">          ActiveSupport::Notifications.instrument(&quot;perform.active_job&quot;, payload) do
  1404. </div><div class="line active">            block.call
  1405. </div><div class="line">          end
  1406. </div><div class="line">        end
  1407. </div><div class="line">      end
  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>#164</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>162</span>
  1425. <span>163</span>
  1426. <span>164</span>
  1427. <span>165</span>
  1428. <span>166</span>
  1429. <span>167</span>
  1430.               </pre>
  1431.             </td>
  1432. <td width="100%">
  1433. <pre>
  1434. <div class="line">      def instrument(name, payload = {})
  1435. </div><div class="line">        if notifier.listening?(name)
  1436. </div><div class="line active">          instrumenter.instrument(name, payload) { yield payload if block_given? }
  1437. </div><div class="line">        else
  1438. </div><div class="line">          yield payload if block_given?
  1439. </div><div class="line">        end
  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>#20</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>18</span>
  1457. <span>19</span>
  1458. <span>20</span>
  1459. <span>21</span>
  1460. <span>22</span>
  1461. <span>23</span>
  1462.               </pre>
  1463.             </td>
  1464. <td width="100%">
  1465. <pre>
  1466. <div class="line">        start name, payload
  1467. </div><div class="line">        begin
  1468. </div><div class="line active">          yield payload
  1469. </div><div class="line">        rescue Exception =&gt; e
  1470. </div><div class="line">          payload[:exception] = [e.class.name, e.message]
  1471. </div><div class="line">          raise e
  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>#164</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>162</span>
  1489. <span>163</span>
  1490. <span>164</span>
  1491. <span>165</span>
  1492. <span>166</span>
  1493. <span>167</span>
  1494.               </pre>
  1495.             </td>
  1496. <td width="100%">
  1497. <pre>
  1498. <div class="line">      def instrument(name, payload = {})
  1499. </div><div class="line">        if notifier.listening?(name)
  1500. </div><div class="line active">          instrumenter.instrument(name, payload) { yield payload if block_given? }
  1501. </div><div class="line">        else
  1502. </div><div class="line">          yield payload if block_given?
  1503. </div><div class="line">        end
  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>#22</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>20</span>
  1521. <span>21</span>
  1522. <span>22</span>
  1523. <span>23</span>
  1524. <span>24</span>
  1525. <span>25</span>
  1526.               </pre>
  1527.             </td>
  1528. <td width="100%">
  1529. <pre>
  1530. <div class="line">          payload = {adapter: job.class.queue_adapter, job: job}
  1531. </div><div class="line">          ActiveSupport::Notifications.instrument(&quot;perform_start.active_job&quot;, payload.dup)
  1532. </div><div class="line active">          ActiveSupport::Notifications.instrument(&quot;perform.active_job&quot;, payload) do
  1533. </div><div class="line">            block.call
  1534. </div><div class="line">          end
  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>#43</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>41</span>
  1553. <span>42</span>
  1554. <span>43</span>
  1555. <span>44</span>
  1556. <span>45</span>
  1557. <span>46</span>
  1558.               </pre>
  1559.             </td>
  1560. <td width="100%">
  1561. <pre>
  1562. <div class="line">        if logger.respond_to?(:tagged)
  1563. </div><div class="line">          tags.unshift &quot;ActiveJob&quot; unless logger_tagged_by_active_job?
  1564. </div><div class="line active">          ActiveJob::Base.logger.tagged(*tags){ yield }
  1565. </div><div class="line">        else
  1566. </div><div class="line">          yield
  1567. </div><div class="line">        end
  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>#68</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>66</span>
  1585. <span>67</span>
  1586. <span>68</span>
  1587. <span>69</span>
  1588. <span>70</span>
  1589. <span>71</span>
  1590.               </pre>
  1591.             </td>
  1592. <td width="100%">
  1593. <pre>
  1594. <div class="line">
  1595. </div><div class="line">    def tagged(*tags)
  1596. </div><div class="line active">      formatter.tagged(*tags) { yield self }
  1597. </div><div class="line">    end
  1598. </div><div class="line">
  1599. </div><div class="line">    def flush
  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>#26</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>24</span>
  1617. <span>25</span>
  1618. <span>26</span>
  1619. <span>27</span>
  1620. <span>28</span>
  1621. <span>29</span>
  1622.               </pre>
  1623.             </td>
  1624. <td width="100%">
  1625. <pre>
  1626. <div class="line">      def tagged(*tags)
  1627. </div><div class="line">        new_tags = push_tags(*tags)
  1628. </div><div class="line active">        yield self
  1629. </div><div class="line">      ensure
  1630. </div><div class="line">        pop_tags(new_tags.size)
  1631. </div><div class="line">      end
  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>#68</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>66</span>
  1649. <span>67</span>
  1650. <span>68</span>
  1651. <span>69</span>
  1652. <span>70</span>
  1653. <span>71</span>
  1654.               </pre>
  1655.             </td>
  1656. <td width="100%">
  1657. <pre>
  1658. <div class="line">
  1659. </div><div class="line">    def tagged(*tags)
  1660. </div><div class="line active">      formatter.tagged(*tags) { yield self }
  1661. </div><div class="line">    end
  1662. </div><div class="line">
  1663. </div><div class="line">    def flush
  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>#43</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>41</span>
  1681. <span>42</span>
  1682. <span>43</span>
  1683. <span>44</span>
  1684. <span>45</span>
  1685. <span>46</span>
  1686.               </pre>
  1687.             </td>
  1688. <td width="100%">
  1689. <pre>
  1690. <div class="line">        if logger.respond_to?(:tagged)
  1691. </div><div class="line">          tags.unshift &quot;ActiveJob&quot; unless logger_tagged_by_active_job?
  1692. </div><div class="line active">          ActiveJob::Base.logger.tagged(*tags){ yield }
  1693. </div><div class="line">        else
  1694. </div><div class="line">          yield
  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>#19</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>17</span>
  1713. <span>18</span>
  1714. <span>19</span>
  1715. <span>20</span>
  1716. <span>21</span>
  1717. <span>22</span>
  1718.               </pre>
  1719.             </td>
  1720. <td width="100%">
  1721. <pre>
  1722. <div class="line">
  1723. </div><div class="line">      around_perform do |job, block, _|
  1724. </div><div class="line active">        tag_logger(job.class.name, job.job_id) do
  1725. </div><div class="line">          payload = {adapter: job.class.queue_adapter, job: job}
  1726. </div><div class="line">          ActiveSupport::Notifications.instrument(&quot;perform_start.active_job&quot;, payload.dup)
  1727. </div><div class="line">          ActiveSupport::Notifications.instrument(&quot;perform.active_job&quot;, payload) do
  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>#441</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>439</span>
  1745. <span>440</span>
  1746. <span>441</span>
  1747. <span>442</span>
  1748. <span>443</span>
  1749. <span>444</span>
  1750.               </pre>
  1751.             </td>
  1752. <td width="100%">
  1753. <pre>
  1754. <div class="line">            return lambda { |target, _, &amp;block|
  1755. </div><div class="line">              raise ArgumentError unless block
  1756. </div><div class="line active">              target.instance_exec(target, block, &amp;filter)
  1757. </div><div class="line">            }
  1758. </div><div class="line">          end
  1759. </div><div class="line">
  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>#441</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>439</span>
  1777. <span>440</span>
  1778. <span>441</span>
  1779. <span>442</span>
  1780. <span>443</span>
  1781. <span>444</span>
  1782.               </pre>
  1783.             </td>
  1784. <td width="100%">
  1785. <pre>
  1786. <div class="line">            return lambda { |target, _, &amp;block|
  1787. </div><div class="line">              raise ArgumentError unless block
  1788. </div><div class="line active">              target.instance_exec(target, block, &amp;filter)
  1789. </div><div class="line">            }
  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>#342</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>340</span>
  1809. <span>341</span>
  1810. <span>342</span>
  1811. <span>343</span>
  1812. <span>344</span>
  1813. <span>345</span>
  1814.               </pre>
  1815.             </td>
  1816. <td width="100%">
  1817. <pre>
  1818. <div class="line">        def self.simple(callback_sequence, user_callback)
  1819. </div><div class="line">          callback_sequence.around do |env, &amp;run|
  1820. </div><div class="line active">            user_callback.call(env.target, env.value) {
  1821. </div><div class="line">              env = run.call env
  1822. </div><div class="line">              env.value
  1823. </div><div class="line">            }
  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>#497</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>495</span>
  1841. <span>496</span>
  1842. <span>497</span>
  1843. <span>498</span>
  1844. <span>499</span>
  1845. <span>500</span>
  1846.               </pre>
  1847.             </td>
  1848. <td width="100%">
  1849. <pre>
  1850. <div class="line">      def around(&amp;around)
  1851. </div><div class="line">        CallbackSequence.new do |*args|
  1852. </div><div class="line active">          around.call(*args) {
  1853. </div><div class="line">            self.call(*args)
  1854. </div><div class="line">          }
  1855. </div><div class="line">        end
  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>#505</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>503</span>
  1873. <span>504</span>
  1874. <span>505</span>
  1875. <span>506</span>
  1876. <span>507</span>
  1877. <span>508</span>
  1878.               </pre>
  1879.             </td>
  1880. <td width="100%">
  1881. <pre>
  1882. <div class="line">      def call(*args)
  1883. </div><div class="line">        @before.each { |b| b.call(*args) }
  1884. </div><div class="line active">        value = @call.call(*args)
  1885. </div><div class="line">        @after.each { |a| a.call(*args) }
  1886. </div><div class="line">        value
  1887. </div><div class="line">      end
  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>#92</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>90</span>
  1905. <span>91</span>
  1906. <span>92</span>
  1907. <span>93</span>
  1908. <span>94</span>
  1909. <span>95</span>
  1910.               </pre>
  1911.             </td>
  1912. <td width="100%">
  1913. <pre>
  1914. <div class="line">        runner = callbacks.compile
  1915. </div><div class="line">        e = Filters::Environment.new(self, false, nil, block)
  1916. </div><div class="line active">        runner.call(e).value
  1917. </div><div class="line">      end
  1918. </div><div class="line">    end
  1919. </div><div class="line">
  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>#778</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>776</span>
  1937. <span>777</span>
  1938. <span>778</span>
  1939. <span>779</span>
  1940. <span>780</span>
  1941. <span>781</span>
  1942.               </pre>
  1943.             </td>
  1944. <td width="100%">
  1945. <pre>
  1946. <div class="line">          module_eval &lt;&lt;-RUBY, __FILE__, __LINE__ + 1
  1947. </div><div class="line">            def _run_#{name}_callbacks(&amp;block)
  1948. </div><div class="line active">              __run_callbacks__(_#{name}_callbacks, &amp;block)
  1949. </div><div class="line">            end
  1950. </div><div class="line">          RUBY
  1951. </div><div class="line">        end
  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>#81</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>79</span>
  1969. <span>80</span>
  1970. <span>81</span>
  1971. <span>82</span>
  1972. <span>83</span>
  1973. <span>84</span>
  1974.               </pre>
  1975.             </td>
  1976. <td width="100%">
  1977. <pre>
  1978. <div class="line">    #   end
  1979. </div><div class="line">    def run_callbacks(kind, &amp;block)
  1980. </div><div class="line active">      send &quot;_run_#{kind}_callbacks&quot;, &amp;block
  1981. </div><div class="line">    end
  1982. </div><div class="line">
  1983. </div><div class="line">    private
  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>#31</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>29</span>
  2001. <span>30</span>
  2002. <span>31</span>
  2003. <span>32</span>
  2004. <span>33</span>
  2005. <span>34</span>
  2006.               </pre>
  2007.             </td>
  2008. <td width="100%">
  2009. <pre>
  2010. <div class="line">    def perform_now
  2011. </div><div class="line">      deserialize_arguments_if_needed
  2012. </div><div class="line active">      run_callbacks :perform do
  2013. </div><div class="line">        perform(*arguments)
  2014. </div><div class="line">      end
  2015. </div><div class="line">    rescue =&gt; exception
  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>#21</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>19</span>
  2033. <span>20</span>
  2034. <span>21</span>
  2035. <span>22</span>
  2036. <span>23</span>
  2037. <span>24</span>
  2038.               </pre>
  2039.             </td>
  2040. <td width="100%">
  2041. <pre>
  2042. <div class="line">      def execute(job_data) #:nodoc:
  2043. </div><div class="line">        job = deserialize(job_data)
  2044. </div><div class="line active">        job.perform_now
  2045. </div><div class="line">      end
  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>#14</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>12</span>
  2065. <span>13</span>
  2066. <span>14</span>
  2067. <span>15</span>
  2068. <span>16</span>
  2069. <span>17</span>
  2070.               </pre>
  2071.             </td>
  2072. <td width="100%">
  2073. <pre>
  2074. <div class="line">      class &lt;&lt; self
  2075. </div><div class="line">        def enqueue(job) #:nodoc:
  2076. </div><div class="line active">          Base.execute(job.serialize)
  2077. </div><div class="line">        end
  2078. </div><div class="line">
  2079. </div><div class="line">        def enqueue_at(*) #:nodoc:
  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>#71</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>69</span>
  2097. <span>70</span>
  2098. <span>71</span>
  2099. <span>72</span>
  2100. <span>73</span>
  2101. <span>74</span>
  2102.               </pre>
  2103.             </td>
  2104. <td width="100%">
  2105. <pre>
  2106. <div class="line">          self.class.queue_adapter.enqueue_at self, self.scheduled_at
  2107. </div><div class="line">        else
  2108. </div><div class="line active">          self.class.queue_adapter.enqueue self
  2109. </div><div class="line">        end
  2110. </div><div class="line">      end
  2111. </div><div class="line">      self
  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>#117</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>115</span>
  2129. <span>116</span>
  2130. <span>117</span>
  2131. <span>118</span>
  2132. <span>119</span>
  2133. <span>120</span>
  2134.               </pre>
  2135.             </td>
  2136. <td width="100%">
  2137. <pre>
  2138. <div class="line">        def call(env)
  2139. </div><div class="line">          block = env.run_block
  2140. </div><div class="line active">          env.value = !env.halted &amp;&amp; (!block || block.call)
  2141. </div><div class="line">          env
  2142. </div><div class="line">        end
  2143. </div><div class="line">      end
  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>#555</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>553</span>
  2161. <span>554</span>
  2162. <span>555</span>
  2163. <span>556</span>
  2164. <span>557</span>
  2165. <span>558</span>
  2166.               </pre>
  2167.             </td>
  2168. <td width="100%">
  2169. <pre>
  2170. <div class="line">      def compile
  2171. </div><div class="line">        @callbacks || @mutex.synchronize do
  2172. </div><div class="line active">          final_sequence = CallbackSequence.new { |env| Filters::ENDING.call(env) }
  2173. </div><div class="line">          @callbacks ||= @chain.reverse.inject(final_sequence) do |callback_sequence, callback|
  2174. </div><div class="line">            callback.apply callback_sequence
  2175. </div><div class="line">          end
  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>#505</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>503</span>
  2193. <span>504</span>
  2194. <span>505</span>
  2195. <span>506</span>
  2196. <span>507</span>
  2197. <span>508</span>
  2198.               </pre>
  2199.             </td>
  2200. <td width="100%">
  2201. <pre>
  2202. <div class="line">      def call(*args)
  2203. </div><div class="line">        @before.each { |b| b.call(*args) }
  2204. </div><div class="line active">        value = @call.call(*args)
  2205. </div><div class="line">        @after.each { |a| a.call(*args) }
  2206. </div><div class="line">        value
  2207. </div><div class="line">      end
  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>#498</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>496</span>
  2225. <span>497</span>
  2226. <span>498</span>
  2227. <span>499</span>
  2228. <span>500</span>
  2229. <span>501</span>
  2230.               </pre>
  2231.             </td>
  2232. <td width="100%">
  2233. <pre>
  2234. <div class="line">        CallbackSequence.new do |*args|
  2235. </div><div class="line">          around.call(*args) {
  2236. </div><div class="line active">            self.call(*args)
  2237. </div><div class="line">          }
  2238. </div><div class="line">        end
  2239. </div><div class="line">      end
  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>#343</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>341</span>
  2257. <span>342</span>
  2258. <span>343</span>
  2259. <span>344</span>
  2260. <span>345</span>
  2261. <span>346</span>
  2262.               </pre>
  2263.             </td>
  2264. <td width="100%">
  2265. <pre>
  2266. <div class="line">          callback_sequence.around do |env, &amp;run|
  2267. </div><div class="line">            user_callback.call(env.target, env.value) {
  2268. </div><div class="line active">              env = run.call env
  2269. </div><div class="line">              env.value
  2270. </div><div class="line">            }
  2271. </div><div class="line">            env
  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>#14</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>12</span>
  2289. <span>13</span>
  2290. <span>14</span>
  2291. <span>15</span>
  2292. <span>16</span>
  2293. <span>17</span>
  2294.               </pre>
  2295.             </td>
  2296. <td width="100%">
  2297. <pre>
  2298. <div class="line">      around_enqueue do |_, block, _|
  2299. </div><div class="line">        tag_logger do
  2300. </div><div class="line active">          block.call
  2301. </div><div class="line">        end
  2302. </div><div class="line">      end
  2303. </div><div class="line">
  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>#43</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>41</span>
  2321. <span>42</span>
  2322. <span>43</span>
  2323. <span>44</span>
  2324. <span>45</span>
  2325. <span>46</span>
  2326.               </pre>
  2327.             </td>
  2328. <td width="100%">
  2329. <pre>
  2330. <div class="line">        if logger.respond_to?(:tagged)
  2331. </div><div class="line">          tags.unshift &quot;ActiveJob&quot; unless logger_tagged_by_active_job?
  2332. </div><div class="line active">          ActiveJob::Base.logger.tagged(*tags){ yield }
  2333. </div><div class="line">        else
  2334. </div><div class="line">          yield
  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>#68</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>66</span>
  2353. <span>67</span>
  2354. <span>68</span>
  2355. <span>69</span>
  2356. <span>70</span>
  2357. <span>71</span>
  2358.               </pre>
  2359.             </td>
  2360. <td width="100%">
  2361. <pre>
  2362. <div class="line">
  2363. </div><div class="line">    def tagged(*tags)
  2364. </div><div class="line active">      formatter.tagged(*tags) { yield self }
  2365. </div><div class="line">    end
  2366. </div><div class="line">
  2367. </div><div class="line">    def flush
  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>#26</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>24</span>
  2385. <span>25</span>
  2386. <span>26</span>
  2387. <span>27</span>
  2388. <span>28</span>
  2389. <span>29</span>
  2390.               </pre>
  2391.             </td>
  2392. <td width="100%">
  2393. <pre>
  2394. <div class="line">      def tagged(*tags)
  2395. </div><div class="line">        new_tags = push_tags(*tags)
  2396. </div><div class="line active">        yield self
  2397. </div><div class="line">      ensure
  2398. </div><div class="line">        pop_tags(new_tags.size)
  2399. </div><div class="line">      end
  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>#68</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>66</span>
  2417. <span>67</span>
  2418. <span>68</span>
  2419. <span>69</span>
  2420. <span>70</span>
  2421. <span>71</span>
  2422.               </pre>
  2423.             </td>
  2424. <td width="100%">
  2425. <pre>
  2426. <div class="line">
  2427. </div><div class="line">    def tagged(*tags)
  2428. </div><div class="line active">      formatter.tagged(*tags) { yield self }
  2429. </div><div class="line">    end
  2430. </div><div class="line">
  2431. </div><div class="line">    def flush
  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>#43</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>41</span>
  2449. <span>42</span>
  2450. <span>43</span>
  2451. <span>44</span>
  2452. <span>45</span>
  2453. <span>46</span>
  2454.               </pre>
  2455.             </td>
  2456. <td width="100%">
  2457. <pre>
  2458. <div class="line">        if logger.respond_to?(:tagged)
  2459. </div><div class="line">          tags.unshift &quot;ActiveJob&quot; unless logger_tagged_by_active_job?
  2460. </div><div class="line active">          ActiveJob::Base.logger.tagged(*tags){ yield }
  2461. </div><div class="line">        else
  2462. </div><div class="line">          yield
  2463. </div><div class="line">        end
  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>#13</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>11</span>
  2481. <span>12</span>
  2482. <span>13</span>
  2483. <span>14</span>
  2484. <span>15</span>
  2485. <span>16</span>
  2486.               </pre>
  2487.             </td>
  2488. <td width="100%">
  2489. <pre>
  2490. <div class="line">
  2491. </div><div class="line">      around_enqueue do |_, block, _|
  2492. </div><div class="line active">        tag_logger do
  2493. </div><div class="line">          block.call
  2494. </div><div class="line">        end
  2495. </div><div class="line">      end
  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>#441</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>439</span>
  2513. <span>440</span>
  2514. <span>441</span>
  2515. <span>442</span>
  2516. <span>443</span>
  2517. <span>444</span>
  2518.               </pre>
  2519.             </td>
  2520. <td width="100%">
  2521. <pre>
  2522. <div class="line">            return lambda { |target, _, &amp;block|
  2523. </div><div class="line">              raise ArgumentError unless block
  2524. </div><div class="line active">              target.instance_exec(target, block, &amp;filter)
  2525. </div><div class="line">            }
  2526. </div><div class="line">          end
  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>#441</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>439</span>
  2545. <span>440</span>
  2546. <span>441</span>
  2547. <span>442</span>
  2548. <span>443</span>
  2549. <span>444</span>
  2550.               </pre>
  2551.             </td>
  2552. <td width="100%">
  2553. <pre>
  2554. <div class="line">            return lambda { |target, _, &amp;block|
  2555. </div><div class="line">              raise ArgumentError unless block
  2556. </div><div class="line active">              target.instance_exec(target, block, &amp;filter)
  2557. </div><div class="line">            }
  2558. </div><div class="line">          end
  2559. </div><div class="line">
  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>#342</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>340</span>
  2577. <span>341</span>
  2578. <span>342</span>
  2579. <span>343</span>
  2580. <span>344</span>
  2581. <span>345</span>
  2582.               </pre>
  2583.             </td>
  2584. <td width="100%">
  2585. <pre>
  2586. <div class="line">        def self.simple(callback_sequence, user_callback)
  2587. </div><div class="line">          callback_sequence.around do |env, &amp;run|
  2588. </div><div class="line active">            user_callback.call(env.target, env.value) {
  2589. </div><div class="line">              env = run.call env
  2590. </div><div class="line">              env.value
  2591. </div><div class="line">            }
  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>#497</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>495</span>
  2609. <span>496</span>
  2610. <span>497</span>
  2611. <span>498</span>
  2612. <span>499</span>
  2613. <span>500</span>
  2614.               </pre>
  2615.             </td>
  2616. <td width="100%">
  2617. <pre>
  2618. <div class="line">      def around(&amp;around)
  2619. </div><div class="line">        CallbackSequence.new do |*args|
  2620. </div><div class="line active">          around.call(*args) {
  2621. </div><div class="line">            self.call(*args)
  2622. </div><div class="line">          }
  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>#505</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>503</span>
  2641. <span>504</span>
  2642. <span>505</span>
  2643. <span>506</span>
  2644. <span>507</span>
  2645. <span>508</span>
  2646.               </pre>
  2647.             </td>
  2648. <td width="100%">
  2649. <pre>
  2650. <div class="line">      def call(*args)
  2651. </div><div class="line">        @before.each { |b| b.call(*args) }
  2652. </div><div class="line active">        value = @call.call(*args)
  2653. </div><div class="line">        @after.each { |a| a.call(*args) }
  2654. </div><div class="line">        value
  2655. </div><div class="line">      end
  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>#92</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>90</span>
  2673. <span>91</span>
  2674. <span>92</span>
  2675. <span>93</span>
  2676. <span>94</span>
  2677. <span>95</span>
  2678.               </pre>
  2679.             </td>
  2680. <td width="100%">
  2681. <pre>
  2682. <div class="line">        runner = callbacks.compile
  2683. </div><div class="line">        e = Filters::Environment.new(self, false, nil, block)
  2684. </div><div class="line active">        runner.call(e).value
  2685. </div><div class="line">      end
  2686. </div><div class="line">    end
  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>#778</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>776</span>
  2705. <span>777</span>
  2706. <span>778</span>
  2707. <span>779</span>
  2708. <span>780</span>
  2709. <span>781</span>
  2710.               </pre>
  2711.             </td>
  2712. <td width="100%">
  2713. <pre>
  2714. <div class="line">          module_eval &lt;&lt;-RUBY, __FILE__, __LINE__ + 1
  2715. </div><div class="line">            def _run_#{name}_callbacks(&amp;block)
  2716. </div><div class="line active">              __run_callbacks__(_#{name}_callbacks, &amp;block)
  2717. </div><div class="line">            end
  2718. </div><div class="line">          RUBY
  2719. </div><div class="line">        end
  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>#81</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>79</span>
  2737. <span>80</span>
  2738. <span>81</span>
  2739. <span>82</span>
  2740. <span>83</span>
  2741. <span>84</span>
  2742.               </pre>
  2743.             </td>
  2744. <td width="100%">
  2745. <pre>
  2746. <div class="line">    #   end
  2747. </div><div class="line">    def run_callbacks(kind, &amp;block)
  2748. </div><div class="line active">      send &quot;_run_#{kind}_callbacks&quot;, &amp;block
  2749. </div><div class="line">    end
  2750. </div><div class="line">
  2751. </div><div class="line">    private
  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>#67</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>65</span>
  2769. <span>66</span>
  2770. <span>67</span>
  2771. <span>68</span>
  2772. <span>69</span>
  2773. <span>70</span>
  2774.               </pre>
  2775.             </td>
  2776. <td width="100%">
  2777. <pre>
  2778. <div class="line">      self.scheduled_at = options[:wait_until].to_f if options[:wait_until]
  2779. </div><div class="line">      self.queue_name   = self.class.queue_name_from_part(options[:queue]) if options[:queue]
  2780. </div><div class="line active">      run_callbacks :enqueue do
  2781. </div><div class="line">        if self.scheduled_at
  2782. </div><div class="line">          self.class.queue_adapter.enqueue_at self, self.scheduled_at
  2783. </div><div class="line">        else
  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>#13</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>11</span>
  2801. <span>12</span>
  2802. <span>13</span>
  2803. <span>14</span>
  2804. <span>15</span>
  2805. <span>16</span>
  2806.               </pre>
  2807.             </td>
  2808. <td width="100%">
  2809. <pre>
  2810. <div class="line">
  2811. </div><div class="line">    def perform_later(*args)
  2812. </div><div class="line active">      @job_class.new(*args).enqueue @options
  2813. </div><div class="line">    end
  2814. </div><div class="line">  end
  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>#112</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>110</span>
  2833. <span>111</span>
  2834. <span>112</span>
  2835. <span>113</span>
  2836. <span>114</span>
  2837. <span>115</span>
  2838.               </pre>
  2839.             </td>
  2840. <td width="100%">
  2841. <pre>
  2842. <div class="line">      def enqueue_delivery(delivery_method, options={})
  2843. </div><div class="line">        args = @mailer.name, @mail_method.to_s, delivery_method.to_s, *@args
  2844. </div><div class="line active">        ActionMailer::DeliveryJob.set(options).perform_later(*args)
  2845. </div><div class="line">      end
  2846. </div><div class="line">  end
  2847. </div><div class="line">end
  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>#68</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>66</span>
  2865. <span>67</span>
  2866. <span>68</span>
  2867. <span>69</span>
  2868. <span>70</span>
  2869. <span>71</span>
  2870.               </pre>
  2871.             </td>
  2872. <td width="100%">
  2873. <pre>
  2874. <div class="line">    # * &lt;tt&gt;:queue&lt;/tt&gt; - Enqueue the email on the specified queue
  2875. </div><div class="line">    def deliver_later(options={})
  2876. </div><div class="line active">      enqueue_delivery :deliver_now, options
  2877. </div><div class="line">    end
  2878. </div><div class="line">
  2879. </div><div class="line">    # Delivers an email without checking +perform_deliveries+ and +raise_delivery_errors+,
  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>#45</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>43</span>
  2897. <span>44</span>
  2898. <span>45</span>
  2899. <span>46</span>
  2900. <span>47</span>
  2901. <span>48</span>
  2902.               </pre>
  2903.             </td>
  2904. <td width="100%">
  2905. <pre>
  2906. <div class="line">    def notify_sellers
  2907. </div><div class="line">      recipients = tour.house.mail_recipients
  2908. </div><div class="line active">      FeedbackMailer.instant_report(self, recipients).deliver_later
  2909. </div><div class="line">    end
  2910. </div><div class="line">  end
  2911. </div><div class="line">
  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>#17</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>15</span>
  2929. <span>16</span>
  2930. <span>17</span>
  2931. <span>18</span>
  2932. <span>19</span>
  2933. <span>20</span>
  2934.               </pre>
  2935.             </td>
  2936. <td width="100%">
  2937. <pre>
  2938. <div class="line">        feedback.assess params[:status]
  2939. </div><div class="line">        feedback.save!
  2940. </div><div class="line active">        feedback.notify_sellers
  2941. </div><div class="line">        listener.update_feedback_success feedback
  2942. </div><div class="line">      rescue Exception =&gt; e
  2943. </div><div class="line">        listener.update_feedback_error e
  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>#12</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>10</span>
  2961. <span>11</span>
  2962. <span>12</span>
  2963. <span>13</span>
  2964. <span>14</span>
  2965. <span>15</span>
  2966.               </pre>
  2967.             </td>
  2968. <td width="100%">
  2969. <pre>
  2970. <div class="line">      previous_context = self.context
  2971. </div><div class="line">      self.context = self
  2972. </div><div class="line active">      result = yield
  2973. </div><div class="line">      self.context = previous_context
  2974. </div><div class="line">
  2975. </div><div class="line">      result
  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>#11</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>9</span>
  2993. <span>10</span>
  2994. <span>11</span>
  2995. <span>12</span>
  2996. <span>13</span>
  2997. <span>14</span>
  2998.               </pre>
  2999.             </td>
  3000. <td width="100%">
  3001. <pre>
  3002. <div class="line">
  3003. </div><div class="line">  def perform
  3004. </div><div class="line active">    in_context do
  3005. </div><div class="line">      begin
  3006. </div><div class="line">        rooms_feedbacks = params.fetch_provided_rooms_feedback
  3007. </div><div class="line">        feedback.rate_rooms rooms_feedbacks
  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>#15</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>13</span>
  3025. <span>14</span>
  3026. <span>15</span>
  3027. <span>16</span>
  3028. <span>17</span>
  3029. <span>18</span>
  3030.               </pre>
  3031.             </td>
  3032. <td width="100%">
  3033. <pre>
  3034. <div class="line">
  3035. </div><div class="line">  def update
  3036. </div><div class="line active">    UpdateFeedback.new(@feedback, feedback_update_params, self).perform
  3037. </div><div class="line">  end
  3038. </div><div class="line">
  3039. </div><div class="line">  def update_feedback_success(feedback)
  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>#4</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>2</span>
  3057. <span>3</span>
  3058. <span>4</span>
  3059. <span>5</span>
  3060. <span>6</span>
  3061. <span>7</span>
  3062.               </pre>
  3063.             </td>
  3064. <td width="100%">
  3065. <pre>
  3066. <div class="line">  module ImplicitRender
  3067. </div><div class="line">    def send_action(method, *args)
  3068. </div><div class="line active">      ret = super
  3069. </div><div class="line">      default_render unless performed?
  3070. </div><div class="line">      ret
  3071. </div><div class="line">    end
  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>#198</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>196</span>
  3089. <span>197</span>
  3090. <span>198</span>
  3091. <span>199</span>
  3092. <span>200</span>
  3093. <span>201</span>
  3094.               </pre>
  3095.             </td>
  3096. <td width="100%">
  3097. <pre>
  3098. <div class="line">      # which is *not* necessarily the same as the action name.
  3099. </div><div class="line">      def process_action(method_name, *args)
  3100. </div><div class="line active">        send_action(method_name, *args)
  3101. </div><div class="line">      end
  3102. </div><div class="line">
  3103. </div><div class="line">      # Actually call the method associated with the action. Override
  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>#10</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>8</span>
  3121. <span>9</span>
  3122. <span>10</span>
  3123. <span>11</span>
  3124. <span>12</span>
  3125. <span>13</span>
  3126.               </pre>
  3127.             </td>
  3128. <td width="100%">
  3129. <pre>
  3130. <div class="line">    def process_action(*) #:nodoc:
  3131. </div><div class="line">      self.formats = request.formats.map(&amp;:ref).compact
  3132. </div><div class="line active">      super
  3133. </div><div class="line">    end
  3134. </div><div class="line">
  3135. </div><div class="line">    # Check for double render errors and set the content_type after rendering.
  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>#20</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>18</span>
  3153. <span>19</span>
  3154. <span>20</span>
  3155. <span>21</span>
  3156. <span>22</span>
  3157. <span>23</span>
  3158.               </pre>
  3159.             </td>
  3160. <td width="100%">
  3161. <pre>
  3162. <div class="line">    def process_action(*args)
  3163. </div><div class="line">      run_callbacks(:process_action) do
  3164. </div><div class="line active">        super
  3165. </div><div class="line">      end
  3166. </div><div class="line">    end
  3167. </div><div class="line">
  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>#117</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>115</span>
  3185. <span>116</span>
  3186. <span>117</span>
  3187. <span>118</span>
  3188. <span>119</span>
  3189. <span>120</span>
  3190.               </pre>
  3191.             </td>
  3192. <td width="100%">
  3193. <pre>
  3194. <div class="line">        def call(env)
  3195. </div><div class="line">          block = env.run_block
  3196. </div><div class="line active">          env.value = !env.halted &amp;&amp; (!block || block.call)
  3197. </div><div class="line">          env
  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>#555</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>553</span>
  3217. <span>554</span>
  3218. <span>555</span>
  3219. <span>556</span>
  3220. <span>557</span>
  3221. <span>558</span>
  3222.               </pre>
  3223.             </td>
  3224. <td width="100%">
  3225. <pre>
  3226. <div class="line">      def compile
  3227. </div><div class="line">        @callbacks || @mutex.synchronize do
  3228. </div><div class="line active">          final_sequence = CallbackSequence.new { |env| Filters::ENDING.call(env) }
  3229. </div><div class="line">          @callbacks ||= @chain.reverse.inject(final_sequence) do |callback_sequence, callback|
  3230. </div><div class="line">            callback.apply callback_sequence
  3231. </div><div class="line">          end
  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>#505</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>503</span>
  3249. <span>504</span>
  3250. <span>505</span>
  3251. <span>506</span>
  3252. <span>507</span>
  3253. <span>508</span>
  3254.               </pre>
  3255.             </td>
  3256. <td width="100%">
  3257. <pre>
  3258. <div class="line">      def call(*args)
  3259. </div><div class="line">        @before.each { |b| b.call(*args) }
  3260. </div><div class="line active">        value = @call.call(*args)
  3261. </div><div class="line">        @after.each { |a| a.call(*args) }
  3262. </div><div class="line">        value
  3263. </div><div class="line">      end
  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>#92</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>90</span>
  3281. <span>91</span>
  3282. <span>92</span>
  3283. <span>93</span>
  3284. <span>94</span>
  3285. <span>95</span>
  3286.               </pre>
  3287.             </td>
  3288. <td width="100%">
  3289. <pre>
  3290. <div class="line">        runner = callbacks.compile
  3291. </div><div class="line">        e = Filters::Environment.new(self, false, nil, block)
  3292. </div><div class="line active">        runner.call(e).value
  3293. </div><div class="line">      end
  3294. </div><div class="line">    end
  3295. </div><div class="line">
  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>#778</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>776</span>
  3313. <span>777</span>
  3314. <span>778</span>
  3315. <span>779</span>
  3316. <span>780</span>
  3317. <span>781</span>
  3318.               </pre>
  3319.             </td>
  3320. <td width="100%">
  3321. <pre>
  3322. <div class="line">          module_eval &lt;&lt;-RUBY, __FILE__, __LINE__ + 1
  3323. </div><div class="line">            def _run_#{name}_callbacks(&amp;block)
  3324. </div><div class="line active">              __run_callbacks__(_#{name}_callbacks, &amp;block)
  3325. </div><div class="line">            end
  3326. </div><div class="line">          RUBY
  3327. </div><div class="line">        end
  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>#81</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>79</span>
  3345. <span>80</span>
  3346. <span>81</span>
  3347. <span>82</span>
  3348. <span>83</span>
  3349. <span>84</span>
  3350.               </pre>
  3351.             </td>
  3352. <td width="100%">
  3353. <pre>
  3354. <div class="line">    #   end
  3355. </div><div class="line">    def run_callbacks(kind, &amp;block)
  3356. </div><div class="line active">      send &quot;_run_#{kind}_callbacks&quot;, &amp;block
  3357. </div><div class="line">    end
  3358. </div><div class="line">
  3359. </div><div class="line">    private
  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>#19</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>17</span>
  3377. <span>18</span>
  3378. <span>19</span>
  3379. <span>20</span>
  3380. <span>21</span>
  3381. <span>22</span>
  3382.               </pre>
  3383.             </td>
  3384. <td width="100%">
  3385. <pre>
  3386. <div class="line">    # process_action callbacks around the normal behavior.
  3387. </div><div class="line">    def process_action(*args)
  3388. </div><div class="line active">      run_callbacks(:process_action) do
  3389. </div><div class="line">        super
  3390. </div><div class="line">      end
  3391. </div><div class="line">    end
  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>#29</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>27</span>
  3409. <span>28</span>
  3410. <span>29</span>
  3411. <span>30</span>
  3412. <span>31</span>
  3413. <span>32</span>
  3414.               </pre>
  3415.             </td>
  3416. <td width="100%">
  3417. <pre>
  3418. <div class="line">    private
  3419. </div><div class="line">      def process_action(*args)
  3420. </div><div class="line active">        super
  3421. </div><div class="line">      rescue Exception =&gt; exception
  3422. </div><div class="line">        request.env[&#39;action_dispatch.show_detailed_exceptions&#39;] ||= show_detailed_exceptions?
  3423. </div><div class="line">        rescue_with_handler(exception) || raise(exception)
  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>#32</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>30</span>
  3441. <span>31</span>
  3442. <span>32</span>
  3443. <span>33</span>
  3444. <span>34</span>
  3445. <span>35</span>
  3446.               </pre>
  3447.             </td>
  3448. <td width="100%">
  3449. <pre>
  3450. <div class="line">      ActiveSupport::Notifications.instrument(&quot;process_action.action_controller&quot;, raw_payload) do |payload|
  3451. </div><div class="line">        begin
  3452. </div><div class="line active">          result = super
  3453. </div><div class="line">          payload[:status] = response.status
  3454. </div><div class="line">          result
  3455. </div><div class="line">        ensure
  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>#164</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>162</span>
  3473. <span>163</span>
  3474. <span>164</span>
  3475. <span>165</span>
  3476. <span>166</span>
  3477. <span>167</span>
  3478.               </pre>
  3479.             </td>
  3480. <td width="100%">
  3481. <pre>
  3482. <div class="line">      def instrument(name, payload = {})
  3483. </div><div class="line">        if notifier.listening?(name)
  3484. </div><div class="line active">          instrumenter.instrument(name, payload) { yield payload if block_given? }
  3485. </div><div class="line">        else
  3486. </div><div class="line">          yield payload if block_given?
  3487. </div><div class="line">        end
  3488. </div>
  3489. </pre>
  3490. </td>
  3491.           </tr>
  3492.         </table>
  3493.       </div>
  3494.     </div>
  3495.     <div class="source hidden" id="frame-source-104">
  3496.       <div class="info">
  3497.         Extracted source (around line <strong>#20</strong>):
  3498.       </div>
  3499.       <div class="data">
  3500.         <table cellpadding="0" cellspacing="0" class="lines">
  3501.           <tr>
  3502.             <td>
  3503.               <pre class="line_numbers">
  3504. <span>18</span>
  3505. <span>19</span>
  3506. <span>20</span>
  3507. <span>21</span>
  3508. <span>22</span>
  3509. <span>23</span>
  3510.               </pre>
  3511.             </td>
  3512. <td width="100%">
  3513. <pre>
  3514. <div class="line">        start name, payload
  3515. </div><div class="line">        begin
  3516. </div><div class="line active">          yield payload
  3517. </div><div class="line">        rescue Exception =&gt; e
  3518. </div><div class="line">          payload[:exception] = [e.class.name, e.message]
  3519. </div><div class="line">          raise e
  3520. </div>
  3521. </pre>
  3522. </td>
  3523.           </tr>
  3524.         </table>
  3525.       </div>
  3526.     </div>
  3527.     <div class="source hidden" id="frame-source-105">
  3528.       <div class="info">
  3529.         Extracted source (around line <strong>#164</strong>):
  3530.       </div>
  3531.       <div class="data">
  3532.         <table cellpadding="0" cellspacing="0" class="lines">
  3533.           <tr>
  3534.             <td>
  3535.               <pre class="line_numbers">
  3536. <span>162</span>
  3537. <span>163</span>
  3538. <span>164</span>
  3539. <span>165</span>
  3540. <span>166</span>
  3541. <span>167</span>
  3542.               </pre>
  3543.             </td>
  3544. <td width="100%">
  3545. <pre>
  3546. <div class="line">      def instrument(name, payload = {})
  3547. </div><div class="line">        if notifier.listening?(name)
  3548. </div><div class="line active">          instrumenter.instrument(name, payload) { yield payload if block_given? }
  3549. </div><div class="line">        else
  3550. </div><div class="line">          yield payload if block_given?
  3551. </div><div class="line">        end
  3552. </div>
  3553. </pre>
  3554. </td>
  3555.           </tr>
  3556.         </table>
  3557.       </div>
  3558.     </div>
  3559.     <div class="source hidden" id="frame-source-106">
  3560.       <div class="info">
  3561.         Extracted source (around line <strong>#30</strong>):
  3562.       </div>
  3563.       <div class="data">
  3564.         <table cellpadding="0" cellspacing="0" class="lines">
  3565.           <tr>
  3566.             <td>
  3567.               <pre class="line_numbers">
  3568. <span>28</span>
  3569. <span>29</span>
  3570. <span>30</span>
  3571. <span>31</span>
  3572. <span>32</span>
  3573. <span>33</span>
  3574.               </pre>
  3575.             </td>
  3576. <td width="100%">
  3577. <pre>
  3578. <div class="line">      ActiveSupport::Notifications.instrument(&quot;start_processing.action_controller&quot;, raw_payload.dup)
  3579. </div><div class="line">
  3580. </div><div class="line active">      ActiveSupport::Notifications.instrument(&quot;process_action.action_controller&quot;, raw_payload) do |payload|
  3581. </div><div class="line">        begin
  3582. </div><div class="line">          result = super
  3583. </div><div class="line">          payload[:status] = response.status
  3584. </div>
  3585. </pre>
  3586. </td>
  3587.           </tr>
  3588.         </table>
  3589.       </div>
  3590.     </div>
  3591.     <div class="source hidden" id="frame-source-107">
  3592.       <div class="info">
  3593.         Extracted source (around line <strong>#250</strong>):
  3594.       </div>
  3595.       <div class="data">
  3596.         <table cellpadding="0" cellspacing="0" class="lines">
  3597.           <tr>
  3598.             <td>
  3599.               <pre class="line_numbers">
  3600. <span>248</span>
  3601. <span>249</span>
  3602. <span>250</span>
  3603. <span>251</span>
  3604. <span>252</span>
  3605. <span>253</span>
  3606.               </pre>
  3607.             </td>
  3608. <td width="100%">
  3609. <pre>
  3610. <div class="line">        request.filtered_parameters.merge! wrapped_filtered_hash
  3611. </div><div class="line">      end
  3612. </div><div class="line active">      super
  3613. </div><div class="line">    end
  3614. </div><div class="line">
  3615. </div><div class="line">    private
  3616. </div>
  3617. </pre>
  3618. </td>
  3619.           </tr>
  3620.         </table>
  3621.       </div>
  3622.     </div>
  3623.     <div class="source hidden" id="frame-source-108">
  3624.       <div class="info">
  3625.         Extracted source (around line <strong>#18</strong>):
  3626.       </div>
  3627.       <div class="data">
  3628.         <table cellpadding="0" cellspacing="0" class="lines">
  3629.           <tr>
  3630.             <td>
  3631.               <pre class="line_numbers">
  3632. <span>16</span>
  3633. <span>17</span>
  3634. <span>18</span>
  3635. <span>19</span>
  3636. <span>20</span>
  3637. <span>21</span>
  3638.               </pre>
  3639.             </td>
  3640. <td width="100%">
  3641. <pre>
  3642. <div class="line">        # and it won&#39;t be cleaned up by the method below.
  3643. </div><div class="line">        ActiveRecord::LogSubscriber.reset_runtime
  3644. </div><div class="line active">        super
  3645. </div><div class="line">      end
  3646. </div><div class="line">
  3647. </div><div class="line">      def cleanup_view_runtime
  3648. </div>
  3649. </pre>
  3650. </td>
  3651.           </tr>
  3652.         </table>
  3653.       </div>
  3654.     </div>
  3655.     <div class="source hidden" id="frame-source-109">
  3656.       <div class="info">
  3657.         Extracted source (around line <strong>#137</strong>):
  3658.       </div>
  3659.       <div class="data">
  3660.         <table cellpadding="0" cellspacing="0" class="lines">
  3661.           <tr>
  3662.             <td>
  3663.               <pre class="line_numbers">
  3664. <span>135</span>
  3665. <span>136</span>
  3666. <span>137</span>
  3667. <span>138</span>
  3668. <span>139</span>
  3669. <span>140</span>
  3670.               </pre>
  3671.             </td>
  3672. <td width="100%">
  3673. <pre>
  3674. <div class="line">      @_response_body = nil
  3675. </div><div class="line">
  3676. </div><div class="line active">      process_action(action_name, *args)
  3677. </div><div class="line">    end
  3678. </div><div class="line">
  3679. </div><div class="line">    # Delegates to the class&#39; #controller_path
  3680. </div>
  3681. </pre>
  3682. </td>
  3683.           </tr>
  3684.         </table>
  3685.       </div>
  3686.     </div>
  3687.     <div class="source hidden" id="frame-source-110">
  3688.       <div class="info">
  3689.         Extracted source (around line <strong>#30</strong>):
  3690.       </div>
  3691.       <div class="data">
  3692.         <table cellpadding="0" cellspacing="0" class="lines">
  3693.           <tr>
  3694.             <td>
  3695.               <pre class="line_numbers">
  3696. <span>28</span>
  3697. <span>29</span>
  3698. <span>30</span>
  3699. <span>31</span>
  3700. <span>32</span>
  3701. <span>33</span>
  3702.               </pre>
  3703.             </td>
  3704. <td width="100%">
  3705. <pre>
  3706. <div class="line">    def process(*) #:nodoc:
  3707. </div><div class="line">      old_config, I18n.config = I18n.config, I18nProxy.new(I18n.config, lookup_context)
  3708. </div><div class="line active">      super
  3709. </div><div class="line">    ensure
  3710. </div><div class="line">      I18n.config = old_config
  3711. </div><div class="line">    end
  3712. </div>
  3713. </pre>
  3714. </td>
  3715.           </tr>
  3716.         </table>
  3717.       </div>
  3718.     </div>
  3719.     <div class="source hidden" id="frame-source-111">
  3720.       <div class="info">
  3721.         Extracted source (around line <strong>#196</strong>):
  3722.       </div>
  3723.       <div class="data">
  3724.         <table cellpadding="0" cellspacing="0" class="lines">
  3725.           <tr>
  3726.             <td>
  3727.               <pre class="line_numbers">
  3728. <span>194</span>
  3729. <span>195</span>
  3730. <span>196</span>
  3731. <span>197</span>
  3732. <span>198</span>
  3733. <span>199</span>
  3734.               </pre>
  3735.             </td>
  3736. <td width="100%">
  3737. <pre>
  3738. <div class="line">      @_env = request.env
  3739. </div><div class="line">      @_env[&#39;action_controller.instance&#39;] = self
  3740. </div><div class="line active">      process(name)
  3741. </div><div class="line">      to_a
  3742. </div><div class="line">    end
  3743. </div><div class="line">
  3744. </div>
  3745. </pre>
  3746. </td>
  3747.           </tr>
  3748.         </table>
  3749.       </div>
  3750.     </div>
  3751.     <div class="source hidden" id="frame-source-112">
  3752.       <div class="info">
  3753.         Extracted source (around line <strong>#13</strong>):
  3754.       </div>
  3755.       <div class="data">
  3756.         <table cellpadding="0" cellspacing="0" class="lines">
  3757.           <tr>
  3758.             <td>
  3759.               <pre class="line_numbers">
  3760. <span>11</span>
  3761. <span>12</span>
  3762. <span>13</span>
  3763. <span>14</span>
  3764. <span>15</span>
  3765. <span>16</span>
  3766.               </pre>
  3767.             </td>
  3768. <td width="100%">
  3769. <pre>
  3770. <div class="line">    def dispatch(action, request)
  3771. </div><div class="line">      set_response!(request)
  3772. </div><div class="line active">      super(action, request)
  3773. </div><div class="line">    end
  3774. </div><div class="line">
  3775. </div><div class="line">    def response_body=(body)
  3776. </div>
  3777. </pre>
  3778. </td>
  3779.           </tr>
  3780.         </table>
  3781.       </div>
  3782.     </div>
  3783.     <div class="source hidden" id="frame-source-113">
  3784.       <div class="info">
  3785.         Extracted source (around line <strong>#237</strong>):
  3786.       </div>
  3787.       <div class="data">
  3788.         <table cellpadding="0" cellspacing="0" class="lines">
  3789.           <tr>
  3790.             <td>
  3791.               <pre class="line_numbers">
  3792. <span>235</span>
  3793. <span>236</span>
  3794. <span>237</span>
  3795. <span>238</span>
  3796. <span>239</span>
  3797. <span>240</span>
  3798.               </pre>
  3799.             </td>
  3800. <td width="100%">
  3801. <pre>
  3802. <div class="line">        end
  3803. </div><div class="line">      else
  3804. </div><div class="line active">        lambda { |env| new.dispatch(name, klass.new(env)) }
  3805. </div><div class="line">      end
  3806. </div><div class="line">    end
  3807. </div><div class="line">  end
  3808. </div>
  3809. </pre>
  3810. </td>
  3811.           </tr>
  3812.         </table>
  3813.       </div>
  3814.     </div>
  3815.     <div class="source hidden" id="frame-source-114">
  3816.       <div class="info">
  3817.         Extracted source (around line <strong>#76</strong>):
  3818.       </div>
  3819.       <div class="data">
  3820.         <table cellpadding="0" cellspacing="0" class="lines">
  3821.           <tr>
  3822.             <td>
  3823.               <pre class="line_numbers">
  3824. <span>74</span>
  3825. <span>75</span>
  3826. <span>76</span>
  3827. <span>77</span>
  3828. <span>78</span>
  3829. <span>79</span>
  3830.               </pre>
  3831.             </td>
  3832. <td width="100%">
  3833. <pre>
  3834. <div class="line">
  3835. </div><div class="line">        def dispatch(controller, action, env)
  3836. </div><div class="line active">          controller.action(action).call(env)
  3837. </div><div class="line">        end
  3838. </div><div class="line">
  3839. </div><div class="line">        def normalize_controller!(params)
  3840. </div>
  3841. </pre>
  3842. </td>
  3843.           </tr>
  3844.         </table>
  3845.       </div>
  3846.     </div>
  3847.     <div class="source hidden" id="frame-source-115">
  3848.       <div class="info">
  3849.         Extracted source (around line <strong>#45</strong>):
  3850.       </div>
  3851.       <div class="data">
  3852.         <table cellpadding="0" cellspacing="0" class="lines">
  3853.           <tr>
  3854.             <td>
  3855.               <pre class="line_numbers">
  3856. <span>43</span>
  3857. <span>44</span>
  3858. <span>45</span>
  3859. <span>46</span>
  3860. <span>47</span>
  3861. <span>48</span>
  3862.               </pre>
  3863.             </td>
  3864. <td width="100%">
  3865. <pre>
  3866. <div class="line">          end
  3867. </div><div class="line">
  3868. </div><div class="line active">          dispatch(controller, params[:action], req.env)
  3869. </div><div class="line">        end
  3870. </div><div class="line">
  3871. </div><div class="line">        def prepare_params!(params)
  3872. </div>
  3873. </pre>
  3874. </td>
  3875.           </tr>
  3876.         </table>
  3877.       </div>
  3878.     </div>
  3879.     <div class="source hidden" id="frame-source-116">
  3880.       <div class="info">
  3881.         Extracted source (around line <strong>#49</strong>):
  3882.       </div>
  3883.       <div class="data">
  3884.         <table cellpadding="0" cellspacing="0" class="lines">
  3885.           <tr>
  3886.             <td>
  3887.               <pre class="line_numbers">
  3888. <span>47</span>
  3889. <span>48</span>
  3890. <span>49</span>
  3891. <span>50</span>
  3892. <span>51</span>
  3893. <span>52</span>
  3894.               </pre>
  3895.             </td>
  3896. <td width="100%">
  3897. <pre>
  3898. <div class="line">
  3899. </div><div class="line">          if dispatcher?
  3900. </div><div class="line active">            @app.serve req
  3901. </div><div class="line">          else
  3902. </div><div class="line">            @app.call req.env
  3903. </div><div class="line">          end
  3904. </div>
  3905. </pre>
  3906. </td>
  3907.           </tr>
  3908.         </table>
  3909.       </div>
  3910.     </div>
  3911.     <div class="source hidden" id="frame-source-117">
  3912.       <div class="info">
  3913.         Extracted source (around line <strong>#43</strong>):
  3914.       </div>
  3915.       <div class="data">
  3916.         <table cellpadding="0" cellspacing="0" class="lines">
  3917.           <tr>
  3918.             <td>
  3919.               <pre class="line_numbers">
  3920. <span>41</span>
  3921. <span>42</span>
  3922. <span>43</span>
  3923. <span>44</span>
  3924. <span>45</span>
  3925. <span>46</span>
  3926.               </pre>
  3927.             </td>
  3928. <td width="100%">
  3929. <pre>
  3930. <div class="line">          req.path_parameters = set_params.merge parameters
  3931. </div><div class="line">
  3932. </div><div class="line active">          status, headers, body = route.app.serve(req)
  3933. </div><div class="line">
  3934. </div><div class="line">          if &#39;pass&#39; == headers[&#39;X-Cascade&#39;]
  3935. </div><div class="line">            req.script_name     = script_name
  3936. </div>
  3937. </pre>
  3938. </td>
  3939.           </tr>
  3940.         </table>
  3941.       </div>
  3942.     </div>
  3943.     <div class="source hidden" id="frame-source-118">
  3944.       <div class="info">
  3945.         Extracted source (around line <strong>#30</strong>):
  3946.       </div>
  3947.       <div class="data">
  3948.         <table cellpadding="0" cellspacing="0" class="lines">
  3949.           <tr>
  3950.             <td>
  3951.               <pre class="line_numbers">
  3952. <span>28</span>
  3953. <span>29</span>
  3954. <span>30</span>
  3955. <span>31</span>
  3956. <span>32</span>
  3957. <span>33</span>
  3958.               </pre>
  3959.             </td>
  3960. <td width="100%">
  3961. <pre>
  3962. <div class="line">
  3963. </div><div class="line">      def serve(req)
  3964. </div><div class="line active">        find_routes(req).each do |match, parameters, route|
  3965. </div><div class="line">          set_params  = req.path_parameters
  3966. </div><div class="line">          path_info   = req.path_info
  3967. </div><div class="line">          script_name = req.script_name
  3968. </div>
  3969. </pre>
  3970. </td>
  3971.           </tr>
  3972.         </table>
  3973.       </div>
  3974.     </div>
  3975.     <div class="source hidden" id="frame-source-119">
  3976.       <div class="info">
  3977.         Extracted source (around line <strong>#30</strong>):
  3978.       </div>
  3979.       <div class="data">
  3980.         <table cellpadding="0" cellspacing="0" class="lines">
  3981.           <tr>
  3982.             <td>
  3983.               <pre class="line_numbers">
  3984. <span>28</span>
  3985. <span>29</span>
  3986. <span>30</span>
  3987. <span>31</span>
  3988. <span>32</span>
  3989. <span>33</span>
  3990.               </pre>
  3991.             </td>
  3992. <td width="100%">
  3993. <pre>
  3994. <div class="line">
  3995. </div><div class="line">      def serve(req)
  3996. </div><div class="line active">        find_routes(req).each do |match, parameters, route|
  3997. </div><div class="line">          set_params  = req.path_parameters
  3998. </div><div class="line">          path_info   = req.path_info
  3999. </div><div class="line">          script_name = req.script_name
  4000. </div>
  4001. </pre>
  4002. </td>
  4003.           </tr>
  4004.         </table>
  4005.       </div>
  4006.     </div>
  4007.     <div class="source hidden" id="frame-source-120">
  4008.       <div class="info">
  4009.         Extracted source (around line <strong>#817</strong>):
  4010.       </div>
  4011.       <div class="data">
  4012.         <table cellpadding="0" cellspacing="0" class="lines">
  4013.           <tr>
  4014.             <td>
  4015.               <pre class="line_numbers">
  4016. <span>815</span>
  4017. <span>816</span>
  4018. <span>817</span>
  4019. <span>818</span>
  4020. <span>819</span>
  4021. <span>820</span>
  4022.               </pre>
  4023.             </td>
  4024. <td width="100%">
  4025. <pre>
  4026. <div class="line">        req = request_class.new(env)
  4027. </div><div class="line">        req.path_info = Journey::Router::Utils.normalize_path(req.path_info)
  4028. </div><div class="line active">        @router.serve(req)
  4029. </div><div class="line">      end
  4030. </div><div class="line">
  4031. </div><div class="line">      def recognize_path(path, environment = {})
  4032. </div>
  4033. </pre>
  4034. </td>
  4035.           </tr>
  4036.         </table>
  4037.       </div>
  4038.     </div>
  4039.     <div class="source hidden" id="frame-source-121">
  4040.       <div class="info">
  4041.         Extracted source (around line <strong>#35</strong>):
  4042.       </div>
  4043.       <div class="data">
  4044.         <table cellpadding="0" cellspacing="0" class="lines">
  4045.           <tr>
  4046.             <td>
  4047.               <pre class="line_numbers">
  4048. <span>33</span>
  4049. <span>34</span>
  4050. <span>35</span>
  4051. <span>36</span>
  4052. <span>37</span>
  4053. <span>38</span>
  4054.               </pre>
  4055.             </td>
  4056. <td width="100%">
  4057. <pre>
  4058. <div class="line">      env[&#39;warden&#39;] = Proxy.new(env, self)
  4059. </div><div class="line">      result = catch(:warden) do
  4060. </div><div class="line active">        @app.call(env)
  4061. </div><div class="line">      end
  4062. </div><div class="line">
  4063. </div><div class="line">      result ||= {}
  4064. </div>
  4065. </pre>
  4066. </td>
  4067.           </tr>
  4068.         </table>
  4069.       </div>
  4070.     </div>
  4071.     <div class="source hidden" id="frame-source-122">
  4072.       <div class="info">
  4073.         Extracted source (around line <strong>#34</strong>):
  4074.       </div>
  4075.       <div class="data">
  4076.         <table cellpadding="0" cellspacing="0" class="lines">
  4077.           <tr>
  4078.             <td>
  4079.               <pre class="line_numbers">
  4080. <span>32</span>
  4081. <span>33</span>
  4082. <span>34</span>
  4083. <span>35</span>
  4084. <span>36</span>
  4085. <span>37</span>
  4086.               </pre>
  4087.             </td>
  4088. <td width="100%">
  4089. <pre>
  4090. <div class="line">
  4091. </div><div class="line">      env[&#39;warden&#39;] = Proxy.new(env, self)
  4092. </div><div class="line active">      result = catch(:warden) do
  4093. </div><div class="line">        @app.call(env)
  4094. </div><div class="line">      end
  4095. </div><div class="line">
  4096. </div>
  4097. </pre>
  4098. </td>
  4099.           </tr>
  4100.         </table>
  4101.       </div>
  4102.     </div>
  4103.     <div class="source hidden" id="frame-source-123">
  4104.       <div class="info">
  4105.         Extracted source (around line <strong>#34</strong>):
  4106.       </div>
  4107.       <div class="data">
  4108.         <table cellpadding="0" cellspacing="0" class="lines">
  4109.           <tr>
  4110.             <td>
  4111.               <pre class="line_numbers">
  4112. <span>32</span>
  4113. <span>33</span>
  4114. <span>34</span>
  4115. <span>35</span>
  4116. <span>36</span>
  4117. <span>37</span>
  4118.               </pre>
  4119.             </td>
  4120. <td width="100%">
  4121. <pre>
  4122. <div class="line">
  4123. </div><div class="line">      env[&#39;warden&#39;] = Proxy.new(env, self)
  4124. </div><div class="line active">      result = catch(:warden) do
  4125. </div><div class="line">        @app.call(env)
  4126. </div><div class="line">      end
  4127. </div><div class="line">
  4128. </div>
  4129. </pre>
  4130. </td>
  4131.           </tr>
  4132.         </table>
  4133.       </div>
  4134.     </div>
  4135.     <div class="source hidden" id="frame-source-124">
  4136.       <div class="info">
  4137.         Extracted source (around line <strong>#39</strong>):
  4138.       </div>
  4139.       <div class="data">
  4140.         <table cellpadding="0" cellspacing="0" class="lines">
  4141.           <tr>
  4142.             <td>
  4143.               <pre class="line_numbers">
  4144. <span>37</span>
  4145. <span>38</span>
  4146. <span>39</span>
  4147. <span>40</span>
  4148. <span>41</span>
  4149. <span>42</span>
  4150.               </pre>
  4151.             </td>
  4152. <td width="100%">
  4153. <pre>
  4154. <div class="line">        env[HTTP_ACCEPT] = entries.join(&quot;, &quot;)
  4155. </div><div class="line">      end
  4156. </div><div class="line active">      @app.call(env)
  4157. </div><div class="line">    end
  4158. </div><div class="line">  end
  4159. </div><div class="line">end
  4160. </div>
  4161. </pre>
  4162. </td>
  4163.           </tr>
  4164.         </table>
  4165.       </div>
  4166.     </div>
  4167.     <div class="source hidden" id="frame-source-125">
  4168.       <div class="info">
  4169.         Extracted source (around line <strong>#17</strong>):
  4170.       </div>
  4171.       <div class="data">
  4172.         <table cellpadding="0" cellspacing="0" class="lines">
  4173.           <tr>
  4174.             <td>
  4175.               <pre class="line_numbers">
  4176. <span>15</span>
  4177. <span>16</span>
  4178. <span>17</span>
  4179. <span>18</span>
  4180. <span>19</span>
  4181. <span>20</span>
  4182.               </pre>
  4183.             </td>
  4184. <td width="100%">
  4185. <pre>
  4186. <div class="line">
  4187. </div><div class="line">    def call(env)
  4188. </div><div class="line active">      dup._call(env)
  4189. </div><div class="line">    end
  4190. </div><div class="line">
  4191. </div><div class="line">    def _call(env)
  4192. </div>
  4193. </pre>
  4194. </td>
  4195.           </tr>
  4196.         </table>
  4197.       </div>
  4198.     </div>
  4199.     <div class="source hidden" id="frame-source-126">
  4200.       <div class="info">
  4201.         Extracted source (around line <strong>#24</strong>):
  4202.       </div>
  4203.       <div class="data">
  4204.         <table cellpadding="0" cellspacing="0" class="lines">
  4205.           <tr>
  4206.             <td>
  4207.               <pre class="line_numbers">
  4208. <span>22</span>
  4209. <span>23</span>
  4210. <span>24</span>
  4211. <span>25</span>
  4212. <span>26</span>
  4213. <span>27</span>
  4214.               </pre>
  4215.             </td>
  4216. <td width="100%">
  4217. <pre>
  4218. <div class="line">
  4219. </div><div class="line">    def call(env)
  4220. </div><div class="line active">      status, headers, body = @app.call(env)
  4221. </div><div class="line">
  4222. </div><div class="line">      if etag_status?(status) &amp;&amp; etag_body?(body) &amp;&amp; !skip_caching?(headers)
  4223. </div><div class="line">        original_body = body
  4224. </div>
  4225. </pre>
  4226. </td>
  4227.           </tr>
  4228.         </table>
  4229.       </div>
  4230.     </div>
  4231.     <div class="source hidden" id="frame-source-127">
  4232.       <div class="info">
  4233.         Extracted source (around line <strong>#38</strong>):
  4234.       </div>
  4235.       <div class="data">
  4236.         <table cellpadding="0" cellspacing="0" class="lines">
  4237.           <tr>
  4238.             <td>
  4239.               <pre class="line_numbers">
  4240. <span>36</span>
  4241. <span>37</span>
  4242. <span>38</span>
  4243. <span>39</span>
  4244. <span>40</span>
  4245. <span>41</span>
  4246.               </pre>
  4247.             </td>
  4248. <td width="100%">
  4249. <pre>
  4250. <div class="line">        [status, headers, body]
  4251. </div><div class="line">      else
  4252. </div><div class="line active">        @app.call(env)
  4253. </div><div class="line">      end
  4254. </div><div class="line">    end
  4255. </div><div class="line">
  4256. </div>
  4257. </pre>
  4258. </td>
  4259.           </tr>
  4260.         </table>
  4261.       </div>
  4262.     </div>
  4263.     <div class="source hidden" id="frame-source-128">
  4264.       <div class="info">
  4265.         Extracted source (around line <strong>#13</strong>):
  4266.       </div>
  4267.       <div class="data">
  4268.         <table cellpadding="0" cellspacing="0" class="lines">
  4269.           <tr>
  4270.             <td>
  4271.               <pre class="line_numbers">
  4272. <span>11</span>
  4273. <span>12</span>
  4274. <span>13</span>
  4275. <span>14</span>
  4276. <span>15</span>
  4277. <span>16</span>
  4278.               </pre>
  4279.             </td>
  4280. <td width="100%">
  4281. <pre>
  4282. <div class="line">
  4283. </div><div class="line">  def call(env)
  4284. </div><div class="line active">    status, headers, body = @app.call(env)
  4285. </div><div class="line">
  4286. </div><div class="line">    if env[REQUEST_METHOD] == HEAD
  4287. </div><div class="line">      [
  4288. </div>
  4289. </pre>
  4290. </td>
  4291.           </tr>
  4292.         </table>
  4293.       </div>
  4294.     </div>
  4295.     <div class="source hidden" id="frame-source-129">
  4296.       <div class="info">
  4297.         Extracted source (around line <strong>#27</strong>):
  4298.       </div>
  4299.       <div class="data">
  4300.         <table cellpadding="0" cellspacing="0" class="lines">
  4301.           <tr>
  4302.             <td>
  4303.               <pre class="line_numbers">
  4304. <span>25</span>
  4305. <span>26</span>
  4306. <span>27</span>
  4307. <span>28</span>
  4308. <span>29</span>
  4309. <span>30</span>
  4310.               </pre>
  4311.             </td>
  4312. <td width="100%">
  4313. <pre>
  4314. <div class="line">      end
  4315. </div><div class="line">
  4316. </div><div class="line active">      @app.call(env)
  4317. </div><div class="line">    end
  4318. </div><div class="line">
  4319. </div><div class="line">    private
  4320. </div>
  4321. </pre>
  4322. </td>
  4323.           </tr>
  4324.         </table>
  4325.       </div>
  4326.     </div>
  4327.     <div class="source hidden" id="frame-source-130">
  4328.       <div class="info">
  4329.         Extracted source (around line <strong>#260</strong>):
  4330.       </div>
  4331.       <div class="data">
  4332.         <table cellpadding="0" cellspacing="0" class="lines">
  4333.           <tr>
  4334.             <td>
  4335.               <pre class="line_numbers">
  4336. <span>258</span>
  4337. <span>259</span>
  4338. <span>260</span>
  4339. <span>261</span>
  4340. <span>262</span>
  4341. <span>263</span>
  4342.               </pre>
  4343.             </td>
  4344. <td width="100%">
  4345. <pre>
  4346. <div class="line">
  4347. </div><div class="line">    def call(env)
  4348. </div><div class="line active">      @app.call(env)
  4349. </div><div class="line">    ensure
  4350. </div><div class="line">      session    = Request::Session.find(env) || {}
  4351. </div><div class="line">      flash_hash = env[KEY]
  4352. </div>
  4353. </pre>
  4354. </td>
  4355.           </tr>
  4356.         </table>
  4357.       </div>
  4358.     </div>
  4359.     <div class="source hidden" id="frame-source-131">
  4360.       <div class="info">
  4361.         Extracted source (around line <strong>#225</strong>):
  4362.       </div>
  4363.       <div class="data">
  4364.         <table cellpadding="0" cellspacing="0" class="lines">
  4365.           <tr>
  4366.             <td>
  4367.               <pre class="line_numbers">
  4368. <span>223</span>
  4369. <span>224</span>
  4370. <span>225</span>
  4371. <span>226</span>
  4372. <span>227</span>
  4373. <span>228</span>
  4374.               </pre>
  4375.             </td>
  4376. <td width="100%">
  4377. <pre>
  4378. <div class="line">        def context(env, app=@app)
  4379. </div><div class="line">          prepare_session(env)
  4380. </div><div class="line active">          status, headers, body = app.call(env)
  4381. </div><div class="line">          commit_session(env, status, headers, body)
  4382. </div><div class="line">        end
  4383. </div><div class="line">
  4384. </div>
  4385. </pre>
  4386. </td>
  4387.           </tr>
  4388.         </table>
  4389.       </div>
  4390.     </div>
  4391.     <div class="source hidden" id="frame-source-132">
  4392.       <div class="info">
  4393.         Extracted source (around line <strong>#220</strong>):
  4394.       </div>
  4395.       <div class="data">
  4396.         <table cellpadding="0" cellspacing="0" class="lines">
  4397.           <tr>
  4398.             <td>
  4399.               <pre class="line_numbers">
  4400. <span>218</span>
  4401. <span>219</span>
  4402. <span>220</span>
  4403. <span>221</span>
  4404. <span>222</span>
  4405. <span>223</span>
  4406.               </pre>
  4407.             </td>
  4408. <td width="100%">
  4409. <pre>
  4410. <div class="line">
  4411. </div><div class="line">        def call(env)
  4412. </div><div class="line active">          context(env)
  4413. </div><div class="line">        end
  4414. </div><div class="line">
  4415. </div><div class="line">        def context(env, app=@app)
  4416. </div>
  4417. </pre>
  4418. </td>
  4419.           </tr>
  4420.         </table>
  4421.       </div>
  4422.     </div>
  4423.     <div class="source hidden" id="frame-source-133">
  4424.       <div class="info">
  4425.         Extracted source (around line <strong>#560</strong>):
  4426.       </div>
  4427.       <div class="data">
  4428.         <table cellpadding="0" cellspacing="0" class="lines">
  4429.           <tr>
  4430.             <td>
  4431.               <pre class="line_numbers">
  4432. <span>558</span>
  4433. <span>559</span>
  4434. <span>560</span>
  4435. <span>561</span>
  4436. <span>562</span>
  4437. <span>563</span>
  4438.               </pre>
  4439.             </td>
  4440. <td width="100%">
  4441. <pre>
  4442. <div class="line">
  4443. </div><div class="line">    def call(env)
  4444. </div><div class="line active">      status, headers, body = @app.call(env)
  4445. </div><div class="line">
  4446. </div><div class="line">      if cookie_jar = env[&#39;action_dispatch.cookies&#39;]
  4447. </div><div class="line">        unless cookie_jar.committed?
  4448. </div>
  4449. </pre>
  4450. </td>
  4451.           </tr>
  4452.         </table>
  4453.       </div>
  4454.     </div>
  4455.     <div class="source hidden" id="frame-source-134">
  4456.       <div class="info">
  4457.         Extracted source (around line <strong>#36</strong>):
  4458.       </div>
  4459.       <div class="data">
  4460.         <table cellpadding="0" cellspacing="0" class="lines">
  4461.           <tr>
  4462.             <td>
  4463.               <pre class="line_numbers">
  4464. <span>34</span>
  4465. <span>35</span>
  4466. <span>36</span>
  4467. <span>37</span>
  4468. <span>38</span>
  4469. <span>39</span>
  4470.               </pre>
  4471.             </td>
  4472. <td width="100%">
  4473. <pre>
  4474. <div class="line">      connection.enable_query_cache!
  4475. </div><div class="line">
  4476. </div><div class="line active">      response = @app.call(env)
  4477. </div><div class="line">      response[2] = Rack::BodyProxy.new(response[2]) do
  4478. </div><div class="line">        restore_query_cache_settings(connection_id, enabled)
  4479. </div><div class="line">      end
  4480. </div>
  4481. </pre>
  4482. </td>
  4483.           </tr>
  4484.         </table>
  4485.       </div>
  4486.     </div>
  4487.     <div class="source hidden" id="frame-source-135">
  4488.       <div class="info">
  4489.         Extracted source (around line <strong>#653</strong>):
  4490.       </div>
  4491.       <div class="data">
  4492.         <table cellpadding="0" cellspacing="0" class="lines">
  4493.           <tr>
  4494.             <td>
  4495.               <pre class="line_numbers">
  4496. <span>651</span>
  4497. <span>652</span>
  4498. <span>653</span>
  4499. <span>654</span>
  4500. <span>655</span>
  4501. <span>656</span>
  4502.               </pre>
  4503.             </td>
  4504. <td width="100%">
  4505. <pre>
  4506. <div class="line">        testing = env[&#39;rack.test&#39;]
  4507. </div><div class="line">
  4508. </div><div class="line active">        response = @app.call(env)
  4509. </div><div class="line">        response[2] = ::Rack::BodyProxy.new(response[2]) do
  4510. </div><div class="line">          ActiveRecord::Base.clear_active_connections! unless testing
  4511. </div><div class="line">        end
  4512. </div>
  4513. </pre>
  4514. </td>
  4515.           </tr>
  4516.         </table>
  4517.       </div>
  4518.     </div>
  4519.     <div class="source hidden" id="frame-source-136">
  4520.       <div class="info">
  4521.         Extracted source (around line <strong>#377</strong>):
  4522.       </div>
  4523.       <div class="data">
  4524.         <table cellpadding="0" cellspacing="0" class="lines">
  4525.           <tr>
  4526.             <td>
  4527.               <pre class="line_numbers">
  4528. <span>375</span>
  4529. <span>376</span>
  4530. <span>377</span>
  4531. <span>378</span>
  4532. <span>379</span>
  4533. <span>380</span>
  4534.               </pre>
  4535.             </td>
  4536. <td width="100%">
  4537. <pre>
  4538. <div class="line">          end
  4539. </div><div class="line">        end
  4540. </div><div class="line active">        @app.call(env)
  4541. </div><div class="line">      end
  4542. </div><div class="line">
  4543. </div><div class="line">      private
  4544. </div>
  4545. </pre>
  4546. </td>
  4547.           </tr>
  4548.         </table>
  4549.       </div>
  4550.     </div>
  4551.     <div class="source hidden" id="frame-source-137">
  4552.       <div class="info">
  4553.         Extracted source (around line <strong>#29</strong>):
  4554.       </div>
  4555.       <div class="data">
  4556.         <table cellpadding="0" cellspacing="0" class="lines">
  4557.           <tr>
  4558.             <td>
  4559.               <pre class="line_numbers">
  4560. <span>27</span>
  4561. <span>28</span>
  4562. <span>29</span>
  4563. <span>30</span>
  4564. <span>31</span>
  4565. <span>32</span>
  4566.               </pre>
  4567.             </td>
  4568. <td width="100%">
  4569. <pre>
  4570. <div class="line">      result = run_callbacks :call do
  4571. </div><div class="line">        begin
  4572. </div><div class="line active">          @app.call(env)
  4573. </div><div class="line">        rescue =&gt; error
  4574. </div><div class="line">        end
  4575. </div><div class="line">      end
  4576. </div>
  4577. </pre>
  4578. </td>
  4579.           </tr>
  4580.         </table>
  4581.       </div>
  4582.     </div>
  4583.     <div class="source hidden" id="frame-source-138">
  4584.       <div class="info">
  4585.         Extracted source (around line <strong>#88</strong>):
  4586.       </div>
  4587.       <div class="data">
  4588.         <table cellpadding="0" cellspacing="0" class="lines">
  4589.           <tr>
  4590.             <td>
  4591.               <pre class="line_numbers">
  4592. <span>86</span>
  4593. <span>87</span>
  4594. <span>88</span>
  4595. <span>89</span>
  4596. <span>90</span>
  4597. <span>91</span>
  4598.               </pre>
  4599.             </td>
  4600. <td width="100%">
  4601. <pre>
  4602. <div class="line">    def __run_callbacks__(callbacks, &amp;block)
  4603. </div><div class="line">      if callbacks.empty?
  4604. </div><div class="line active">        yield if block_given?
  4605. </div><div class="line">      else
  4606. </div><div class="line">        runner = callbacks.compile
  4607. </div><div class="line">        e = Filters::Environment.new(self, false, nil, block)
  4608. </div>
  4609. </pre>
  4610. </td>
  4611.           </tr>
  4612.         </table>
  4613.       </div>
  4614.     </div>
  4615.     <div class="source hidden" id="frame-source-139">
  4616.       <div class="info">
  4617.         Extracted source (around line <strong>#778</strong>):
  4618.       </div>
  4619.       <div class="data">
  4620.         <table cellpadding="0" cellspacing="0" class="lines">
  4621.           <tr>
  4622.             <td>
  4623.               <pre class="line_numbers">
  4624. <span>776</span>
  4625. <span>777</span>
  4626. <span>778</span>
  4627. <span>779</span>
  4628. <span>780</span>
  4629. <span>781</span>
  4630.               </pre>
  4631.             </td>
  4632. <td width="100%">
  4633. <pre>
  4634. <div class="line">          module_eval &lt;&lt;-RUBY, __FILE__, __LINE__ + 1
  4635. </div><div class="line">            def _run_#{name}_callbacks(&amp;block)
  4636. </div><div class="line active">              __run_callbacks__(_#{name}_callbacks, &amp;block)
  4637. </div><div class="line">            end
  4638. </div><div class="line">          RUBY
  4639. </div><div class="line">        end
  4640. </div>
  4641. </pre>
  4642. </td>
  4643.           </tr>
  4644.         </table>
  4645.       </div>
  4646.     </div>
  4647.     <div class="source hidden" id="frame-source-140">
  4648.       <div class="info">
  4649.         Extracted source (around line <strong>#81</strong>):
  4650.       </div>
  4651.       <div class="data">
  4652.         <table cellpadding="0" cellspacing="0" class="lines">
  4653.           <tr>
  4654.             <td>
  4655.               <pre class="line_numbers">
  4656. <span>79</span>
  4657. <span>80</span>
  4658. <span>81</span>
  4659. <span>82</span>
  4660. <span>83</span>
  4661. <span>84</span>
  4662.               </pre>
  4663.             </td>
  4664. <td width="100%">
  4665. <pre>
  4666. <div class="line">    #   end
  4667. </div><div class="line">    def run_callbacks(kind, &amp;block)
  4668. </div><div class="line active">      send &quot;_run_#{kind}_callbacks&quot;, &amp;block
  4669. </div><div class="line">    end
  4670. </div><div class="line">
  4671. </div><div class="line">    private
  4672. </div>
  4673. </pre>
  4674. </td>
  4675.           </tr>
  4676.         </table>
  4677.       </div>
  4678.     </div>
  4679.     <div class="source hidden" id="frame-source-141">
  4680.       <div class="info">
  4681.         Extracted source (around line <strong>#27</strong>):
  4682.       </div>
  4683.       <div class="data">
  4684.         <table cellpadding="0" cellspacing="0" class="lines">
  4685.           <tr>
  4686.             <td>
  4687.               <pre class="line_numbers">
  4688. <span>25</span>
  4689. <span>26</span>
  4690. <span>27</span>
  4691. <span>28</span>
  4692. <span>29</span>
  4693. <span>30</span>
  4694.               </pre>
  4695.             </td>
  4696. <td width="100%">
  4697. <pre>
  4698. <div class="line">    def call(env)
  4699. </div><div class="line">      error = nil
  4700. </div><div class="line active">      result = run_callbacks :call do
  4701. </div><div class="line">        begin
  4702. </div><div class="line">          @app.call(env)
  4703. </div><div class="line">        rescue =&gt; error
  4704. </div>
  4705. </pre>
  4706. </td>
  4707.           </tr>
  4708.         </table>
  4709.       </div>
  4710.     </div>
  4711.     <div class="source hidden" id="frame-source-142">
  4712.       <div class="info">
  4713.         Extracted source (around line <strong>#73</strong>):
  4714.       </div>
  4715.       <div class="data">
  4716.         <table cellpadding="0" cellspacing="0" class="lines">
  4717.           <tr>
  4718.             <td>
  4719.               <pre class="line_numbers">
  4720. <span>71</span>
  4721. <span>72</span>
  4722. <span>73</span>
  4723. <span>74</span>
  4724. <span>75</span>
  4725. <span>76</span>
  4726.               </pre>
  4727.             </td>
  4728. <td width="100%">
  4729. <pre>
  4730. <div class="line">      prepare!
  4731. </div><div class="line">
  4732. </div><div class="line active">      response = @app.call(env)
  4733. </div><div class="line">      response[2] = ::Rack::BodyProxy.new(response[2]) { cleanup! }
  4734. </div><div class="line">
  4735. </div><div class="line">      response
  4736. </div>
  4737. </pre>
  4738. </td>
  4739.           </tr>
  4740.         </table>
  4741.       </div>
  4742.     </div>
  4743.     <div class="source hidden" id="frame-source-143">
  4744.       <div class="info">
  4745.         Extracted source (around line <strong>#78</strong>):
  4746.       </div>
  4747.       <div class="data">
  4748.         <table cellpadding="0" cellspacing="0" class="lines">
  4749.           <tr>
  4750.             <td>
  4751.               <pre class="line_numbers">
  4752. <span>76</span>
  4753. <span>77</span>
  4754. <span>78</span>
  4755. <span>79</span>
  4756. <span>80</span>
  4757. <span>81</span>
  4758.               </pre>
  4759.             </td>
  4760. <td width="100%">
  4761. <pre>
  4762. <div class="line">    def call(env)
  4763. </div><div class="line">      env[&quot;action_dispatch.remote_ip&quot;] = GetIp.new(env, self)
  4764. </div><div class="line active">      @app.call(env)
  4765. </div><div class="line">    end
  4766. </div><div class="line">
  4767. </div><div class="line">    # The GetIp class exists as a way to defer processing of the request data
  4768. </div>
  4769. </pre>
  4770. </td>
  4771.           </tr>
  4772.         </table>
  4773.       </div>
  4774.     </div>
  4775.     <div class="source hidden" id="frame-source-144">
  4776.       <div class="info">
  4777.         Extracted source (around line <strong>#17</strong>):
  4778.       </div>
  4779.       <div class="data">
  4780.         <table cellpadding="0" cellspacing="0" class="lines">
  4781.           <tr>
  4782.             <td>
  4783.               <pre class="line_numbers">
  4784. <span>15</span>
  4785. <span>16</span>
  4786. <span>17</span>
  4787. <span>18</span>
  4788. <span>19</span>
  4789. <span>20</span>
  4790.               </pre>
  4791.             </td>
  4792. <td width="100%">
  4793. <pre>
  4794. <div class="line">
  4795. </div><div class="line">    def call(env)
  4796. </div><div class="line active">      _, headers, body = response = @app.call(env)
  4797. </div><div class="line">
  4798. </div><div class="line">      if headers[&#39;X-Cascade&#39;] == &#39;pass&#39;
  4799. </div><div class="line">        body.close if body.respond_to?(:close)
  4800. </div>
  4801. </pre>
  4802. </td>
  4803.           </tr>
  4804.         </table>
  4805.       </div>
  4806.     </div>
  4807.     <div class="source hidden" id="frame-source-145">
  4808.       <div class="info">
  4809.         Extracted source (around line <strong>#30</strong>):
  4810.       </div>
  4811.       <div class="data">
  4812.         <table cellpadding="0" cellspacing="0" class="lines">
  4813.           <tr>
  4814.             <td>
  4815.               <pre class="line_numbers">
  4816. <span>28</span>
  4817. <span>29</span>
  4818. <span>30</span>
  4819. <span>31</span>
  4820. <span>32</span>
  4821. <span>33</span>
  4822.               </pre>
  4823.             </td>
  4824. <td width="100%">
  4825. <pre>
  4826. <div class="line">
  4827. </div><div class="line">    def call(env)
  4828. </div><div class="line active">      @app.call(env)
  4829. </div><div class="line">    rescue Exception =&gt; exception
  4830. </div><div class="line">      if env[&#39;action_dispatch.show_exceptions&#39;] == false
  4831. </div><div class="line">        raise exception
  4832. </div>
  4833. </pre>
  4834. </td>
  4835.           </tr>
  4836.         </table>
  4837.       </div>
  4838.     </div>
  4839.     <div class="source hidden" id="frame-source-146">
  4840.       <div class="info">
  4841.         Extracted source (around line <strong>#38</strong>):
  4842.       </div>
  4843.       <div class="data">
  4844.         <table cellpadding="0" cellspacing="0" class="lines">
  4845.           <tr>
  4846.             <td>
  4847.               <pre class="line_numbers">
  4848. <span>36</span>
  4849. <span>37</span>
  4850. <span>38</span>
  4851. <span>39</span>
  4852. <span>40</span>
  4853. <span>41</span>
  4854.               </pre>
  4855.             </td>
  4856. <td width="100%">
  4857. <pre>
  4858. <div class="line">        instrumenter.start &#39;request.action_dispatch&#39;, request: request
  4859. </div><div class="line">        logger.info { started_request_message(request) }
  4860. </div><div class="line active">        resp = @app.call(env)
  4861. </div><div class="line">        resp[2] = ::Rack::BodyProxy.new(resp[2]) { finish(request) }
  4862. </div><div class="line">        resp
  4863. </div><div class="line">      rescue Exception
  4864. </div>
  4865. </pre>
  4866. </td>
  4867.           </tr>
  4868.         </table>
  4869.       </div>
  4870.     </div>
  4871.     <div class="source hidden" id="frame-source-147">
  4872.       <div class="info">
  4873.         Extracted source (around line <strong>#20</strong>):
  4874.       </div>
  4875.       <div class="data">
  4876.         <table cellpadding="0" cellspacing="0" class="lines">
  4877.           <tr>
  4878.             <td>
  4879.               <pre class="line_numbers">
  4880. <span>18</span>
  4881. <span>19</span>
  4882. <span>20</span>
  4883. <span>21</span>
  4884. <span>22</span>
  4885. <span>23</span>
  4886.               </pre>
  4887.             </td>
  4888. <td width="100%">
  4889. <pre>
  4890. <div class="line">
  4891. </div><div class="line">        if logger.respond_to?(:tagged)
  4892. </div><div class="line active">          logger.tagged(compute_tags(request)) { call_app(request, env) }
  4893. </div><div class="line">        else
  4894. </div><div class="line">          call_app(request, env)
  4895. </div><div class="line">        end
  4896. </div>
  4897. </pre>
  4898. </td>
  4899.           </tr>
  4900.         </table>
  4901.       </div>
  4902.     </div>
  4903.     <div class="source hidden" id="frame-source-148">
  4904.       <div class="info">
  4905.         Extracted source (around line <strong>#68</strong>):
  4906.       </div>
  4907.       <div class="data">
  4908.         <table cellpadding="0" cellspacing="0" class="lines">
  4909.           <tr>
  4910.             <td>
  4911.               <pre class="line_numbers">
  4912. <span>66</span>
  4913. <span>67</span>
  4914. <span>68</span>
  4915. <span>69</span>
  4916. <span>70</span>
  4917. <span>71</span>
  4918.               </pre>
  4919.             </td>
  4920. <td width="100%">
  4921. <pre>
  4922. <div class="line">
  4923. </div><div class="line">    def tagged(*tags)
  4924. </div><div class="line active">      formatter.tagged(*tags) { yield self }
  4925. </div><div class="line">    end
  4926. </div><div class="line">
  4927. </div><div class="line">    def flush
  4928. </div>
  4929. </pre>
  4930. </td>
  4931.           </tr>
  4932.         </table>
  4933.       </div>
  4934.     </div>
  4935.     <div class="source hidden" id="frame-source-149">
  4936.       <div class="info">
  4937.         Extracted source (around line <strong>#26</strong>):
  4938.       </div>
  4939.       <div class="data">
  4940.         <table cellpadding="0" cellspacing="0" class="lines">
  4941.           <tr>
  4942.             <td>
  4943.               <pre class="line_numbers">
  4944. <span>24</span>
  4945. <span>25</span>
  4946. <span>26</span>
  4947. <span>27</span>
  4948. <span>28</span>
  4949. <span>29</span>
  4950.               </pre>
  4951.             </td>
  4952. <td width="100%">
  4953. <pre>
  4954. <div class="line">      def tagged(*tags)
  4955. </div><div class="line">        new_tags = push_tags(*tags)
  4956. </div><div class="line active">        yield self
  4957. </div><div class="line">      ensure
  4958. </div><div class="line">        pop_tags(new_tags.size)
  4959. </div><div class="line">      end
  4960. </div>
  4961. </pre>
  4962. </td>
  4963.           </tr>
  4964.         </table>
  4965.       </div>
  4966.     </div>
  4967.     <div class="source hidden" id="frame-source-150">
  4968.       <div class="info">
  4969.         Extracted source (around line <strong>#68</strong>):
  4970.       </div>
  4971.       <div class="data">
  4972.         <table cellpadding="0" cellspacing="0" class="lines">
  4973.           <tr>
  4974.             <td>
  4975.               <pre class="line_numbers">
  4976. <span>66</span>
  4977. <span>67</span>
  4978. <span>68</span>
  4979. <span>69</span>
  4980. <span>70</span>
  4981. <span>71</span>
  4982.               </pre>
  4983.             </td>
  4984. <td width="100%">
  4985. <pre>
  4986. <div class="line">
  4987. </div><div class="line">    def tagged(*tags)
  4988. </div><div class="line active">      formatter.tagged(*tags) { yield self }
  4989. </div><div class="line">    end
  4990. </div><div class="line">
  4991. </div><div class="line">    def flush
  4992. </div>
  4993. </pre>
  4994. </td>
  4995.           </tr>
  4996.         </table>
  4997.       </div>
  4998.     </div>
  4999.     <div class="source hidden" id="frame-source-151">
  5000.       <div class="info">
  5001.         Extracted source (around line <strong>#20</strong>):
  5002.       </div>
  5003.       <div class="data">
  5004.         <table cellpadding="0" cellspacing="0" class="lines">
  5005.           <tr>
  5006.             <td>
  5007.               <pre class="line_numbers">
  5008. <span>18</span>
  5009. <span>19</span>
  5010. <span>20</span>
  5011. <span>21</span>
  5012. <span>22</span>
  5013. <span>23</span>
  5014.               </pre>
  5015.             </td>
  5016. <td width="100%">
  5017. <pre>
  5018. <div class="line">
  5019. </div><div class="line">        if logger.respond_to?(:tagged)
  5020. </div><div class="line active">          logger.tagged(compute_tags(request)) { call_app(request, env) }
  5021. </div><div class="line">        else
  5022. </div><div class="line">          call_app(request, env)
  5023. </div><div class="line">        end
  5024. </div>
  5025. </pre>
  5026. </td>
  5027.           </tr>
  5028.         </table>
  5029.       </div>
  5030.     </div>
  5031.     <div class="source hidden" id="frame-source-152">
  5032.       <div class="info">
  5033.         Extracted source (around line <strong>#9</strong>):
  5034.       </div>
  5035.       <div class="data">
  5036.         <table cellpadding="0" cellspacing="0" class="lines">
  5037.           <tr>
  5038.             <td>
  5039.               <pre class="line_numbers">
  5040. <span>7</span>
  5041. <span>8</span>
  5042. <span>9</span>
  5043. <span>10</span>
  5044. <span>11</span>
  5045. <span>12</span>
  5046.               </pre>
  5047.             </td>
  5048. <td width="100%">
  5049. <pre>
  5050. <div class="line">    def call(env)
  5051. </div><div class="line">      RequestStore.begin!
  5052. </div><div class="line active">      @app.call(env)
  5053. </div><div class="line">    ensure
  5054. </div><div class="line">      RequestStore.end!
  5055. </div><div class="line">      RequestStore.clear!
  5056. </div>
  5057. </pre>
  5058. </td>
  5059.           </tr>
  5060.         </table>
  5061.       </div>
  5062.     </div>
  5063.     <div class="source hidden" id="frame-source-153">
  5064.       <div class="info">
  5065.         Extracted source (around line <strong>#21</strong>):
  5066.       </div>
  5067.       <div class="data">
  5068.         <table cellpadding="0" cellspacing="0" class="lines">
  5069.           <tr>
  5070.             <td>
  5071.               <pre class="line_numbers">
  5072. <span>19</span>
  5073. <span>20</span>
  5074. <span>21</span>
  5075. <span>22</span>
  5076. <span>23</span>
  5077. <span>24</span>
  5078.               </pre>
  5079.             </td>
  5080. <td width="100%">
  5081. <pre>
  5082. <div class="line">    def call(env)
  5083. </div><div class="line">      env[&quot;action_dispatch.request_id&quot;] = external_request_id(env) || internal_request_id
  5084. </div><div class="line active">      @app.call(env).tap { |_status, headers, _body| headers[&quot;X-Request-Id&quot;] = env[&quot;action_dispatch.request_id&quot;] }
  5085. </div><div class="line">    end
  5086. </div><div class="line">
  5087. </div><div class="line">    private
  5088. </div>
  5089. </pre>
  5090. </td>
  5091.           </tr>
  5092.         </table>
  5093.       </div>
  5094.     </div>
  5095.     <div class="source hidden" id="frame-source-154">
  5096.       <div class="info">
  5097.         Extracted source (around line <strong>#22</strong>):
  5098.       </div>
  5099.       <div class="data">
  5100.         <table cellpadding="0" cellspacing="0" class="lines">
  5101.           <tr>
  5102.             <td>
  5103.               <pre class="line_numbers">
  5104. <span>20</span>
  5105. <span>21</span>
  5106. <span>22</span>
  5107. <span>23</span>
  5108. <span>24</span>
  5109. <span>25</span>
  5110.               </pre>
  5111.             </td>
  5112. <td width="100%">
  5113. <pre>
  5114. <div class="line">      end
  5115. </div><div class="line">
  5116. </div><div class="line active">      @app.call(env)
  5117. </div><div class="line">    end
  5118. </div><div class="line">
  5119. </div><div class="line">    def method_override(env)
  5120. </div>
  5121. </pre>
  5122. </td>
  5123.           </tr>
  5124.         </table>
  5125.       </div>
  5126.     </div>
  5127.     <div class="source hidden" id="frame-source-155">
  5128.       <div class="info">
  5129.         Extracted source (around line <strong>#18</strong>):
  5130.       </div>
  5131.       <div class="data">
  5132.         <table cellpadding="0" cellspacing="0" class="lines">
  5133.           <tr>
  5134.             <td>
  5135.               <pre class="line_numbers">
  5136. <span>16</span>
  5137. <span>17</span>
  5138. <span>18</span>
  5139. <span>19</span>
  5140. <span>20</span>
  5141. <span>21</span>
  5142.               </pre>
  5143.             </td>
  5144. <td width="100%">
  5145. <pre>
  5146. <div class="line">    def call(env)
  5147. </div><div class="line">      start_time = clock_time
  5148. </div><div class="line active">      status, headers, body = @app.call(env)
  5149. </div><div class="line">      request_time = clock_time - start_time
  5150. </div><div class="line">
  5151. </div><div class="line">      if !headers.has_key?(@header_name)
  5152. </div>
  5153. </pre>
  5154. </td>
  5155.           </tr>
  5156.         </table>
  5157.       </div>
  5158.     </div>
  5159.     <div class="source hidden" id="frame-source-156">
  5160.       <div class="info">
  5161.         Extracted source (around line <strong>#100</strong>):
  5162.       </div>
  5163.       <div class="data">
  5164.         <table cellpadding="0" cellspacing="0" class="lines">
  5165.           <tr>
  5166.             <td>
  5167.               <pre class="line_numbers">
  5168. <span>98</span>
  5169. <span>99</span>
  5170. <span>100</span>
  5171. <span>101</span>
  5172. <span>102</span>
  5173. <span>103</span>
  5174.               </pre>
  5175.             </td>
  5176. <td width="100%">
  5177. <pre>
  5178. <div class="line">
  5179. </div><div class="line">      # pass request through if service_timeout is false (i.e., don&#39;t time it out at all.)
  5180. </div><div class="line active">      return @app.call(env) unless service_timeout
  5181. </div><div class="line">
  5182. </div><div class="line">      # compute actual timeout to be used for this request; if service_past_wait is true, this is just service_timeout. If false (the default), and wait time was determined, we&#39;ll use the shortest value between seconds_service_left and service_timeout. See comment above at service_past_wait for justification.
  5183. </div><div class="line">      info.timeout = service_timeout # nice and simple, when service_past_wait is true, not so much otherwise:
  5184. </div>
  5185. </pre>
  5186. </td>
  5187.           </tr>
  5188.         </table>
  5189.       </div>
  5190.     </div>
  5191.     <div class="source hidden" id="frame-source-157">
  5192.       <div class="info">
  5193.         Extracted source (around line <strong>#28</strong>):
  5194.       </div>
  5195.       <div class="data">
  5196.         <table cellpadding="0" cellspacing="0" class="lines">
  5197.           <tr>
  5198.             <td>
  5199.               <pre class="line_numbers">
  5200. <span>26</span>
  5201. <span>27</span>
  5202. <span>28</span>
  5203. <span>29</span>
  5204. <span>30</span>
  5205. <span>31</span>
  5206.               </pre>
  5207.             </td>
  5208. <td width="100%">
  5209. <pre>
  5210. <div class="line">          def call(env)
  5211. </div><div class="line">            LocalCacheRegistry.set_cache_for(local_cache_key, LocalStore.new)
  5212. </div><div class="line active">            response = @app.call(env)
  5213. </div><div class="line">            response[2] = ::Rack::BodyProxy.new(response[2]) do
  5214. </div><div class="line">              LocalCacheRegistry.set_cache_for(local_cache_key, nil)
  5215. </div><div class="line">            end
  5216. </div>
  5217. </pre>
  5218. </td>
  5219.           </tr>
  5220.         </table>
  5221.       </div>
  5222.     </div>
  5223.     <div class="source hidden" id="frame-source-158">
  5224.       <div class="info">
  5225.         Extracted source (around line <strong>#17</strong>):
  5226.       </div>
  5227.       <div class="data">
  5228.         <table cellpadding="0" cellspacing="0" class="lines">
  5229.           <tr>
  5230.             <td>
  5231.               <pre class="line_numbers">
  5232. <span>15</span>
  5233. <span>16</span>
  5234. <span>17</span>
  5235. <span>18</span>
  5236. <span>19</span>
  5237. <span>20</span>
  5238.               </pre>
  5239.             </td>
  5240. <td width="100%">
  5241. <pre>
  5242. <div class="line">      old, env[FLAG] = env[FLAG], false
  5243. </div><div class="line">      @mutex.lock
  5244. </div><div class="line active">      response = @app.call(env)
  5245. </div><div class="line">      body = BodyProxy.new(response[2]) { @mutex.unlock }
  5246. </div><div class="line">      response[2] = body
  5247. </div><div class="line">      response
  5248. </div>
  5249. </pre>
  5250. </td>
  5251.           </tr>
  5252.         </table>
  5253.       </div>
  5254.     </div>
  5255.     <div class="source hidden" id="frame-source-159">
  5256.       <div class="info">
  5257.         Extracted source (around line <strong>#116</strong>):
  5258.       </div>
  5259.       <div class="data">
  5260.         <table cellpadding="0" cellspacing="0" class="lines">
  5261.           <tr>
  5262.             <td>
  5263.               <pre class="line_numbers">
  5264. <span>114</span>
  5265. <span>115</span>
  5266. <span>116</span>
  5267. <span>117</span>
  5268. <span>118</span>
  5269. <span>119</span>
  5270.               </pre>
  5271.             </td>
  5272. <td width="100%">
  5273. <pre>
  5274. <div class="line">      end
  5275. </div><div class="line">
  5276. </div><div class="line active">      @app.call(env)
  5277. </div><div class="line">    end
  5278. </div><div class="line">  end
  5279. </div><div class="line">end
  5280. </div>
  5281. </pre>
  5282. </td>
  5283.           </tr>
  5284.         </table>
  5285.       </div>
  5286.     </div>
  5287.     <div class="source hidden" id="frame-source-160">
  5288.       <div class="info">
  5289.         Extracted source (around line <strong>#113</strong>):
  5290.       </div>
  5291.       <div class="data">
  5292.         <table cellpadding="0" cellspacing="0" class="lines">
  5293.           <tr>
  5294.             <td>
  5295.               <pre class="line_numbers">
  5296. <span>111</span>
  5297. <span>112</span>
  5298. <span>113</span>
  5299. <span>114</span>
  5300. <span>115</span>
  5301. <span>116</span>
  5302.               </pre>
  5303.             </td>
  5304. <td width="100%">
  5305. <pre>
  5306. <div class="line">
  5307. </div><div class="line">    def call(env)
  5308. </div><div class="line active">      status, headers, body = @app.call(env)
  5309. </div><div class="line">      if body.respond_to?(:to_path)
  5310. </div><div class="line">        case type = variation(env)
  5311. </div><div class="line">        when &#39;X-Accel-Redirect&#39;
  5312. </div>
  5313. </pre>
  5314. </td>
  5315.           </tr>
  5316.         </table>
  5317.       </div>
  5318.     </div>
  5319.     <div class="source hidden" id="frame-source-161">
  5320.       <div class="info">
  5321.         Extracted source (around line <strong>#518</strong>):
  5322.       </div>
  5323.       <div class="data">
  5324.         <table cellpadding="0" cellspacing="0" class="lines">
  5325.           <tr>
  5326.             <td>
  5327.               <pre class="line_numbers">
  5328. <span>516</span>
  5329. <span>517</span>
  5330. <span>518</span>
  5331. <span>519</span>
  5332. <span>520</span>
  5333. <span>521</span>
  5334.               </pre>
  5335.             </td>
  5336. <td width="100%">
  5337. <pre>
  5338. <div class="line">        env[&quot;ROUTES_#{routes.object_id}_SCRIPT_NAME&quot;] = env[&#39;SCRIPT_NAME&#39;].dup
  5339. </div><div class="line">      end
  5340. </div><div class="line active">      app.call(env)
  5341. </div><div class="line">    end
  5342. </div><div class="line">
  5343. </div><div class="line">    # Defines additional Rack env configuration that is added on each call.
  5344. </div>
  5345. </pre>
  5346. </td>
  5347.           </tr>
  5348.         </table>
  5349.       </div>
  5350.     </div>
  5351.     <div class="source hidden" id="frame-source-162">
  5352.       <div class="info">
  5353.         Extracted source (around line <strong>#165</strong>):
  5354.       </div>
  5355.       <div class="data">
  5356.         <table cellpadding="0" cellspacing="0" class="lines">
  5357.           <tr>
  5358.             <td>
  5359.               <pre class="line_numbers">
  5360. <span>163</span>
  5361. <span>164</span>
  5362. <span>165</span>
  5363. <span>166</span>
  5364. <span>167</span>
  5365. <span>168</span>
  5366.               </pre>
  5367.             </td>
  5368. <td width="100%">
  5369. <pre>
  5370. <div class="line">      env[&quot;ORIGINAL_FULLPATH&quot;] = build_original_fullpath(env)
  5371. </div><div class="line">      env[&quot;ORIGINAL_SCRIPT_NAME&quot;] = env[&quot;SCRIPT_NAME&quot;]
  5372. </div><div class="line active">      super(env)
  5373. </div><div class="line">    end
  5374. </div><div class="line">
  5375. </div><div class="line">    # Reload application routes regardless if they changed or not.
  5376. </div>
  5377. </pre>
  5378. </td>
  5379.           </tr>
  5380.         </table>
  5381.       </div>
  5382.     </div>
  5383.     <div class="source hidden" id="frame-source-163">
  5384.       <div class="info">
  5385.         Extracted source (around line <strong>#224</strong>):
  5386.       </div>
  5387.       <div class="data">
  5388.         <table cellpadding="0" cellspacing="0" class="lines">
  5389.           <tr>
  5390.             <td>
  5391.               <pre class="line_numbers">
  5392. <span>222</span>
  5393. <span>223</span>
  5394. <span>224</span>
  5395. <span>225</span>
  5396. <span>226</span>
  5397. <span>227</span>
  5398.               </pre>
  5399.             </td>
  5400. <td width="100%">
  5401. <pre>
  5402. <div class="line">      def call(env)
  5403. </div><div class="line">        env[Const::PUMA_CONFIG] = @config
  5404. </div><div class="line active">        @app.call(env)
  5405. </div><div class="line">      end
  5406. </div><div class="line">    end
  5407. </div><div class="line">
  5408. </div>
  5409. </pre>
  5410. </td>
  5411.           </tr>
  5412.         </table>
  5413.       </div>
  5414.     </div>
  5415.     <div class="source hidden" id="frame-source-164">
  5416.       <div class="info">
  5417.         Extracted source (around line <strong>#569</strong>):
  5418.       </div>
  5419.       <div class="data">
  5420.         <table cellpadding="0" cellspacing="0" class="lines">
  5421.           <tr>
  5422.             <td>
  5423.               <pre class="line_numbers">
  5424. <span>567</span>
  5425. <span>568</span>
  5426. <span>569</span>
  5427. <span>570</span>
  5428. <span>571</span>
  5429. <span>572</span>
  5430.               </pre>
  5431.             </td>
  5432. <td width="100%">
  5433. <pre>
  5434. <div class="line">      begin
  5435. </div><div class="line">        begin
  5436. </div><div class="line active">          status, headers, res_body = @app.call(env)
  5437. </div><div class="line">
  5438. </div><div class="line">          return :async if req.hijacked
  5439. </div><div class="line">
  5440. </div>
  5441. </pre>
  5442. </td>
  5443.           </tr>
  5444.         </table>
  5445.       </div>
  5446.     </div>
  5447.     <div class="source hidden" id="frame-source-165">
  5448.       <div class="info">
  5449.         Extracted source (around line <strong>#406</strong>):
  5450.       </div>
  5451.       <div class="data">
  5452.         <table cellpadding="0" cellspacing="0" class="lines">
  5453.           <tr>
  5454.             <td>
  5455.               <pre class="line_numbers">
  5456. <span>404</span>
  5457. <span>405</span>
  5458. <span>406</span>
  5459. <span>407</span>
  5460. <span>408</span>
  5461. <span>409</span>
  5462.               </pre>
  5463.             </td>
  5464. <td width="100%">
  5465. <pre>
  5466. <div class="line">
  5467. </div><div class="line">        while true
  5468. </div><div class="line active">          case handle_request(client, buffer)
  5469. </div><div class="line">          when false
  5470. </div><div class="line">            return
  5471. </div><div class="line">          when :async
  5472. </div>
  5473. </pre>
  5474. </td>
  5475.           </tr>
  5476.         </table>
  5477.       </div>
  5478.     </div>
  5479.     <div class="source hidden" id="frame-source-166">
  5480.       <div class="info">
  5481.         Extracted source (around line <strong>#271</strong>):
  5482.       </div>
  5483.       <div class="data">
  5484.         <table cellpadding="0" cellspacing="0" class="lines">
  5485.           <tr>
  5486.             <td>
  5487.               <pre class="line_numbers">
  5488. <span>269</span>
  5489. <span>270</span>
  5490. <span>271</span>
  5491. <span>272</span>
  5492. <span>273</span>
  5493. <span>274</span>
  5494.               </pre>
  5495.             </td>
  5496. <td width="100%">
  5497. <pre>
  5498. <div class="line">        else
  5499. </div><div class="line">          if process_now
  5500. </div><div class="line active">            process_client client, buffer
  5501. </div><div class="line">          else
  5502. </div><div class="line">            client.set_timeout @first_data_timeout
  5503. </div><div class="line">            @reactor.add client
  5504. </div>
  5505. </pre>
  5506. </td>
  5507.           </tr>
  5508.         </table>
  5509.       </div>
  5510.     </div>
  5511.     <div class="source hidden" id="frame-source-167">
  5512.       <div class="info">
  5513.         Extracted source (around line <strong>#114</strong>):
  5514.       </div>
  5515.       <div class="data">
  5516.         <table cellpadding="0" cellspacing="0" class="lines">
  5517.           <tr>
  5518.             <td>
  5519.               <pre class="line_numbers">
  5520. <span>112</span>
  5521. <span>113</span>
  5522. <span>114</span>
  5523. <span>115</span>
  5524. <span>116</span>
  5525. <span>117</span>
  5526.               </pre>
  5527.             </td>
  5528. <td width="100%">
  5529. <pre>
  5530. <div class="line">
  5531. </div><div class="line">          begin
  5532. </div><div class="line active">            block.call(work, *extra)
  5533. </div><div class="line">          rescue Exception
  5534. </div><div class="line">          end
  5535. </div><div class="line">        end
  5536. </div>
  5537. </pre>
  5538. </td>
  5539.           </tr>
  5540.         </table>
  5541.       </div>
  5542.     </div>
  5543.  
  5544.  
  5545. <p><code>Rails.root: /var/www/vhosts/homesway/releases/20160629111744</code></p>
  5546.  
  5547. <div id="traces">
  5548.     <a href="#" onclick="hide(&#39;Framework-Trace&#39;);hide(&#39;Full-Trace&#39;);show(&#39;Application-Trace&#39;);; return false;">Application Trace</a> |
  5549.     <a href="#" onclick="hide(&#39;Application-Trace&#39;);hide(&#39;Full-Trace&#39;);show(&#39;Framework-Trace&#39;);; return false;">Framework Trace</a> |
  5550.     <a href="#" onclick="hide(&#39;Application-Trace&#39;);hide(&#39;Framework-Trace&#39;);show(&#39;Full-Trace&#39;);; return false;">Full Trace</a>
  5551.  
  5552.     <div id="Application-Trace" style="display: block;">
  5553.       <pre><code><a class="trace-frames" data-frame-id="0" href="#">app/mailers/feedback_mailer.rb:18:in `block in send_feedback&#39;</a><br><a class="trace-frames" data-frame-id="1" href="#">app/mailers/feedback_mailer.rb:16:in `each&#39;</a><br><a class="trace-frames" data-frame-id="2" href="#">app/mailers/feedback_mailer.rb:16:in `send_feedback&#39;</a><br><a class="trace-frames" data-frame-id="3" href="#">app/mailers/feedback_mailer.rb:5:in `instant_report&#39;</a><br><a class="trace-frames" data-frame-id="85" href="#">app/context/update_feedback.rb:45:in `notify_sellers&#39;</a><br><a class="trace-frames" data-frame-id="86" href="#">app/context/update_feedback.rb:17:in `block in perform&#39;</a><br><a class="trace-frames" data-frame-id="88" href="#">app/context/update_feedback.rb:11:in `perform&#39;</a><br><a class="trace-frames" data-frame-id="89" href="#">app/controllers/api/v1/feedbacks_controller.rb:15:in `update&#39;</a><br></code></pre>
  5554.     </div>
  5555.     <div id="Framework-Trace" style="display: none;">
  5556.       <pre><code><a class="trace-frames" data-frame-id="4" href="#">actionpack (4.2.5) lib/abstract_controller/base.rb:198:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="5" href="#">actionpack (4.2.5) lib/abstract_controller/callbacks.rb:20:in `block in process_action&#39;</a><br><a class="trace-frames" data-frame-id="6" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:88:in `__run_callbacks__&#39;</a><br><a class="trace-frames" data-frame-id="7" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:778:in `_run_process_action_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="8" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:81:in `run_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="9" href="#">actionpack (4.2.5) lib/abstract_controller/callbacks.rb:19:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="10" href="#">actionpack (4.2.5) lib/abstract_controller/base.rb:137:in `process&#39;</a><br><a class="trace-frames" data-frame-id="11" href="#">actionview (4.2.5) lib/action_view/rendering.rb:30:in `process&#39;</a><br><a class="trace-frames" data-frame-id="12" href="#">actionmailer (4.2.5) lib/action_mailer/base.rb:596:in `block in process&#39;</a><br><a class="trace-frames" data-frame-id="13" href="#">activesupport (4.2.5) lib/active_support/notifications.rb:164:in `block in instrument&#39;</a><br><a class="trace-frames" data-frame-id="14" href="#">activesupport (4.2.5) lib/active_support/notifications/instrumenter.rb:20:in `instrument&#39;</a><br><a class="trace-frames" data-frame-id="15" href="#">activesupport (4.2.5) lib/active_support/notifications.rb:164:in `instrument&#39;</a><br><a class="trace-frames" data-frame-id="16" href="#">actionmailer (4.2.5) lib/action_mailer/base.rb:593:in `process&#39;</a><br><a class="trace-frames" data-frame-id="17" href="#">actionmailer (4.2.5) lib/action_mailer/base.rb:584:in `initialize&#39;</a><br><a class="trace-frames" data-frame-id="18" href="#">actionmailer (4.2.5) lib/action_mailer/message_delivery.rb:25:in `new&#39;</a><br><a class="trace-frames" data-frame-id="19" href="#">actionmailer (4.2.5) lib/action_mailer/message_delivery.rb:25:in `__getobj__&#39;</a><br><a class="trace-frames" data-frame-id="20" href="#">actionmailer (4.2.5) lib/action_mailer/message_delivery.rb:34:in `message&#39;</a><br><a class="trace-frames" data-frame-id="21" href="#">actionmailer (4.2.5) lib/action_mailer/message_delivery.rb:85:in `deliver_now&#39;</a><br><a class="trace-frames" data-frame-id="22" href="#">actionmailer (4.2.5) lib/action_mailer/delivery_job.rb:10:in `perform&#39;</a><br><a class="trace-frames" data-frame-id="23" href="#">activejob (4.2.5) lib/active_job/execution.rb:32:in `block in perform_now&#39;</a><br><a class="trace-frames" data-frame-id="24" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:117:in `call&#39;</a><br><a class="trace-frames" data-frame-id="25" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:555:in `block (2 levels) in compile&#39;</a><br><a class="trace-frames" data-frame-id="26" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:505:in `call&#39;</a><br><a class="trace-frames" data-frame-id="27" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:498:in `block (2 levels) in around&#39;</a><br><a class="trace-frames" data-frame-id="28" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:343:in `block (2 levels) in simple&#39;</a><br><a class="trace-frames" data-frame-id="29" href="#">i18n (0.7.0) lib/i18n.rb:257:in `with_locale&#39;</a><br><a class="trace-frames" data-frame-id="30" href="#">activejob (4.2.5) lib/active_job/translation.rb:7:in `block (2 levels) in &lt;module:Translation&gt;&#39;</a><br><a class="trace-frames" data-frame-id="31" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:441:in `instance_exec&#39;</a><br><a class="trace-frames" data-frame-id="32" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:441:in `block in make_lambda&#39;</a><br><a class="trace-frames" data-frame-id="33" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:342:in `block in simple&#39;</a><br><a class="trace-frames" data-frame-id="34" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:497:in `block in around&#39;</a><br><a class="trace-frames" data-frame-id="35" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:505:in `call&#39;</a><br><a class="trace-frames" data-frame-id="36" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:498:in `block (2 levels) in around&#39;</a><br><a class="trace-frames" data-frame-id="37" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:343:in `block (2 levels) in simple&#39;</a><br><a class="trace-frames" data-frame-id="38" href="#">activejob (4.2.5) lib/active_job/logging.rb:23:in `block (4 levels) in &lt;module:Logging&gt;&#39;</a><br><a class="trace-frames" data-frame-id="39" href="#">activesupport (4.2.5) lib/active_support/notifications.rb:164:in `block in instrument&#39;</a><br><a class="trace-frames" data-frame-id="40" href="#">activesupport (4.2.5) lib/active_support/notifications/instrumenter.rb:20:in `instrument&#39;</a><br><a class="trace-frames" data-frame-id="41" href="#">activesupport (4.2.5) lib/active_support/notifications.rb:164:in `instrument&#39;</a><br><a class="trace-frames" data-frame-id="42" href="#">activejob (4.2.5) lib/active_job/logging.rb:22:in `block (3 levels) in &lt;module:Logging&gt;&#39;</a><br><a class="trace-frames" data-frame-id="43" href="#">activejob (4.2.5) lib/active_job/logging.rb:43:in `block in tag_logger&#39;</a><br><a class="trace-frames" data-frame-id="44" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:68:in `block in tagged&#39;</a><br><a class="trace-frames" data-frame-id="45" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:26:in `tagged&#39;</a><br><a class="trace-frames" data-frame-id="46" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:68:in `tagged&#39;</a><br><a class="trace-frames" data-frame-id="47" href="#">activejob (4.2.5) lib/active_job/logging.rb:43:in `tag_logger&#39;</a><br><a class="trace-frames" data-frame-id="48" href="#">activejob (4.2.5) lib/active_job/logging.rb:19:in `block (2 levels) in &lt;module:Logging&gt;&#39;</a><br><a class="trace-frames" data-frame-id="49" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:441:in `instance_exec&#39;</a><br><a class="trace-frames" data-frame-id="50" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:441:in `block in make_lambda&#39;</a><br><a class="trace-frames" data-frame-id="51" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:342:in `block in simple&#39;</a><br><a class="trace-frames" data-frame-id="52" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:497:in `block in around&#39;</a><br><a class="trace-frames" data-frame-id="53" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:505:in `call&#39;</a><br><a class="trace-frames" data-frame-id="54" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:92:in `__run_callbacks__&#39;</a><br><a class="trace-frames" data-frame-id="55" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:778:in `_run_perform_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="56" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:81:in `run_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="57" href="#">activejob (4.2.5) lib/active_job/execution.rb:31:in `perform_now&#39;</a><br><a class="trace-frames" data-frame-id="58" href="#">activejob (4.2.5) lib/active_job/execution.rb:21:in `execute&#39;</a><br><a class="trace-frames" data-frame-id="59" href="#">activejob (4.2.5) lib/active_job/queue_adapters/inline_adapter.rb:14:in `enqueue&#39;</a><br><a class="trace-frames" data-frame-id="60" href="#">activejob (4.2.5) lib/active_job/enqueuing.rb:71:in `block in enqueue&#39;</a><br><a class="trace-frames" data-frame-id="61" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:117:in `call&#39;</a><br><a class="trace-frames" data-frame-id="62" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:555:in `block (2 levels) in compile&#39;</a><br><a class="trace-frames" data-frame-id="63" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:505:in `call&#39;</a><br><a class="trace-frames" data-frame-id="64" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:498:in `block (2 levels) in around&#39;</a><br><a class="trace-frames" data-frame-id="65" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:343:in `block (2 levels) in simple&#39;</a><br><a class="trace-frames" data-frame-id="66" href="#">activejob (4.2.5) lib/active_job/logging.rb:14:in `block (3 levels) in &lt;module:Logging&gt;&#39;</a><br><a class="trace-frames" data-frame-id="67" href="#">activejob (4.2.5) lib/active_job/logging.rb:43:in `block in tag_logger&#39;</a><br><a class="trace-frames" data-frame-id="68" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:68:in `block in tagged&#39;</a><br><a class="trace-frames" data-frame-id="69" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:26:in `tagged&#39;</a><br><a class="trace-frames" data-frame-id="70" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:68:in `tagged&#39;</a><br><a class="trace-frames" data-frame-id="71" href="#">activejob (4.2.5) lib/active_job/logging.rb:43:in `tag_logger&#39;</a><br><a class="trace-frames" data-frame-id="72" href="#">activejob (4.2.5) lib/active_job/logging.rb:13:in `block (2 levels) in &lt;module:Logging&gt;&#39;</a><br><a class="trace-frames" data-frame-id="73" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:441:in `instance_exec&#39;</a><br><a class="trace-frames" data-frame-id="74" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:441:in `block in make_lambda&#39;</a><br><a class="trace-frames" data-frame-id="75" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:342:in `block in simple&#39;</a><br><a class="trace-frames" data-frame-id="76" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:497:in `block in around&#39;</a><br><a class="trace-frames" data-frame-id="77" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:505:in `call&#39;</a><br><a class="trace-frames" data-frame-id="78" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:92:in `__run_callbacks__&#39;</a><br><a class="trace-frames" data-frame-id="79" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:778:in `_run_enqueue_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="80" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:81:in `run_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="81" href="#">activejob (4.2.5) lib/active_job/enqueuing.rb:67:in `enqueue&#39;</a><br><a class="trace-frames" data-frame-id="82" href="#">activejob (4.2.5) lib/active_job/configured_job.rb:13:in `perform_later&#39;</a><br><a class="trace-frames" data-frame-id="83" href="#">actionmailer (4.2.5) lib/action_mailer/message_delivery.rb:112:in `enqueue_delivery&#39;</a><br><a class="trace-frames" data-frame-id="84" href="#">actionmailer (4.2.5) lib/action_mailer/message_delivery.rb:68:in `deliver_later&#39;</a><br><a class="trace-frames" data-frame-id="87" href="#">/var/www/vhosts/homesway/shared/bundle/ruby/2.3.0/bundler/gems/dci-29015e0ee1b4/lib/dci/context.rb:12:in `in_context&#39;</a><br><a class="trace-frames" data-frame-id="90" href="#">actionpack (4.2.5) lib/action_controller/metal/implicit_render.rb:4:in `send_action&#39;</a><br><a class="trace-frames" data-frame-id="91" href="#">actionpack (4.2.5) lib/abstract_controller/base.rb:198:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="92" href="#">actionpack (4.2.5) lib/action_controller/metal/rendering.rb:10:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="93" href="#">actionpack (4.2.5) lib/abstract_controller/callbacks.rb:20:in `block in process_action&#39;</a><br><a class="trace-frames" data-frame-id="94" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:117:in `call&#39;</a><br><a class="trace-frames" data-frame-id="95" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:555:in `block (2 levels) in compile&#39;</a><br><a class="trace-frames" data-frame-id="96" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:505:in `call&#39;</a><br><a class="trace-frames" data-frame-id="97" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:92:in `__run_callbacks__&#39;</a><br><a class="trace-frames" data-frame-id="98" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:778:in `_run_process_action_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="99" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:81:in `run_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="100" href="#">actionpack (4.2.5) lib/abstract_controller/callbacks.rb:19:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="101" href="#">actionpack (4.2.5) lib/action_controller/metal/rescue.rb:29:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="102" href="#">actionpack (4.2.5) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action&#39;</a><br><a class="trace-frames" data-frame-id="103" href="#">activesupport (4.2.5) lib/active_support/notifications.rb:164:in `block in instrument&#39;</a><br><a class="trace-frames" data-frame-id="104" href="#">activesupport (4.2.5) lib/active_support/notifications/instrumenter.rb:20:in `instrument&#39;</a><br><a class="trace-frames" data-frame-id="105" href="#">activesupport (4.2.5) lib/active_support/notifications.rb:164:in `instrument&#39;</a><br><a class="trace-frames" data-frame-id="106" href="#">actionpack (4.2.5) lib/action_controller/metal/instrumentation.rb:30:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="107" href="#">actionpack (4.2.5) lib/action_controller/metal/params_wrapper.rb:250:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="108" href="#">activerecord (4.2.5) lib/active_record/railties/controller_runtime.rb:18:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="109" href="#">actionpack (4.2.5) lib/abstract_controller/base.rb:137:in `process&#39;</a><br><a class="trace-frames" data-frame-id="110" href="#">actionview (4.2.5) lib/action_view/rendering.rb:30:in `process&#39;</a><br><a class="trace-frames" data-frame-id="111" href="#">actionpack (4.2.5) lib/action_controller/metal.rb:196:in `dispatch&#39;</a><br><a class="trace-frames" data-frame-id="112" href="#">actionpack (4.2.5) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch&#39;</a><br><a class="trace-frames" data-frame-id="113" href="#">actionpack (4.2.5) lib/action_controller/metal.rb:237:in `block in action&#39;</a><br><a class="trace-frames" data-frame-id="114" href="#">actionpack (4.2.5) lib/action_dispatch/routing/route_set.rb:76:in `dispatch&#39;</a><br><a class="trace-frames" data-frame-id="115" href="#">actionpack (4.2.5) lib/action_dispatch/routing/route_set.rb:45:in `serve&#39;</a><br><a class="trace-frames" data-frame-id="116" href="#">actionpack (4.2.5) lib/action_dispatch/routing/mapper.rb:49:in `serve&#39;</a><br><a class="trace-frames" data-frame-id="117" href="#">actionpack (4.2.5) lib/action_dispatch/journey/router.rb:43:in `block in serve&#39;</a><br><a class="trace-frames" data-frame-id="118" href="#">actionpack (4.2.5) lib/action_dispatch/journey/router.rb:30:in `each&#39;</a><br><a class="trace-frames" data-frame-id="119" href="#">actionpack (4.2.5) lib/action_dispatch/journey/router.rb:30:in `serve&#39;</a><br><a class="trace-frames" data-frame-id="120" href="#">actionpack (4.2.5) lib/action_dispatch/routing/route_set.rb:817:in `call&#39;</a><br><a class="trace-frames" data-frame-id="121" href="#">warden (1.2.6) lib/warden/manager.rb:35:in `block in call&#39;</a><br><a class="trace-frames" data-frame-id="122" href="#">warden (1.2.6) lib/warden/manager.rb:34:in `catch&#39;</a><br><a class="trace-frames" data-frame-id="123" href="#">warden (1.2.6) lib/warden/manager.rb:34:in `call&#39;</a><br><a class="trace-frames" data-frame-id="124" href="#">versionist (1.5.0) lib/versionist/middleware.rb:39:in `_call&#39;</a><br><a class="trace-frames" data-frame-id="125" href="#">versionist (1.5.0) lib/versionist/middleware.rb:17:in `call&#39;</a><br><a class="trace-frames" data-frame-id="126" href="#">rack (1.6.4) lib/rack/etag.rb:24:in `call&#39;</a><br><a class="trace-frames" data-frame-id="127" href="#">rack (1.6.4) lib/rack/conditionalget.rb:38:in `call&#39;</a><br><a class="trace-frames" data-frame-id="128" href="#">rack (1.6.4) lib/rack/head.rb:13:in `call&#39;</a><br><a class="trace-frames" data-frame-id="129" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/params_parser.rb:27:in `call&#39;</a><br><a class="trace-frames" data-frame-id="130" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/flash.rb:260:in `call&#39;</a><br><a class="trace-frames" data-frame-id="131" href="#">rack (1.6.4) lib/rack/session/abstract/id.rb:225:in `context&#39;</a><br><a class="trace-frames" data-frame-id="132" href="#">rack (1.6.4) lib/rack/session/abstract/id.rb:220:in `call&#39;</a><br><a class="trace-frames" data-frame-id="133" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/cookies.rb:560:in `call&#39;</a><br><a class="trace-frames" data-frame-id="134" href="#">activerecord (4.2.5) lib/active_record/query_cache.rb:36:in `call&#39;</a><br><a class="trace-frames" data-frame-id="135" href="#">activerecord (4.2.5) lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call&#39;</a><br><a class="trace-frames" data-frame-id="136" href="#">activerecord (4.2.5) lib/active_record/migration.rb:377:in `call&#39;</a><br><a class="trace-frames" data-frame-id="137" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call&#39;</a><br><a class="trace-frames" data-frame-id="138" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:88:in `__run_callbacks__&#39;</a><br><a class="trace-frames" data-frame-id="139" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:778:in `_run_call_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="140" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:81:in `run_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="141" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/callbacks.rb:27:in `call&#39;</a><br><a class="trace-frames" data-frame-id="142" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/reloader.rb:73:in `call&#39;</a><br><a class="trace-frames" data-frame-id="143" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/remote_ip.rb:78:in `call&#39;</a><br><a class="trace-frames" data-frame-id="144" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call&#39;</a><br><a class="trace-frames" data-frame-id="145" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call&#39;</a><br><a class="trace-frames" data-frame-id="146" href="#">railties (4.2.5) lib/rails/rack/logger.rb:38:in `call_app&#39;</a><br><a class="trace-frames" data-frame-id="147" href="#">railties (4.2.5) lib/rails/rack/logger.rb:20:in `block in call&#39;</a><br><a class="trace-frames" data-frame-id="148" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:68:in `block in tagged&#39;</a><br><a class="trace-frames" data-frame-id="149" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:26:in `tagged&#39;</a><br><a class="trace-frames" data-frame-id="150" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:68:in `tagged&#39;</a><br><a class="trace-frames" data-frame-id="151" href="#">railties (4.2.5) lib/rails/rack/logger.rb:20:in `call&#39;</a><br><a class="trace-frames" data-frame-id="152" href="#">request_store (1.3.1) lib/request_store/middleware.rb:9:in `call&#39;</a><br><a class="trace-frames" data-frame-id="153" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/request_id.rb:21:in `call&#39;</a><br><a class="trace-frames" data-frame-id="154" href="#">rack (1.6.4) lib/rack/methodoverride.rb:22:in `call&#39;</a><br><a class="trace-frames" data-frame-id="155" href="#">rack (1.6.4) lib/rack/runtime.rb:18:in `call&#39;</a><br><a class="trace-frames" data-frame-id="156" href="#">rack-timeout (0.4.2) lib/rack/timeout/core.rb:100:in `call&#39;</a><br><a class="trace-frames" data-frame-id="157" href="#">activesupport (4.2.5) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call&#39;</a><br><a class="trace-frames" data-frame-id="158" href="#">rack (1.6.4) lib/rack/lock.rb:17:in `call&#39;</a><br><a class="trace-frames" data-frame-id="159" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/static.rb:116:in `call&#39;</a><br><a class="trace-frames" data-frame-id="160" href="#">rack (1.6.4) lib/rack/sendfile.rb:113:in `call&#39;</a><br><a class="trace-frames" data-frame-id="161" href="#">railties (4.2.5) lib/rails/engine.rb:518:in `call&#39;</a><br><a class="trace-frames" data-frame-id="162" href="#">railties (4.2.5) lib/rails/application.rb:165:in `call&#39;</a><br><a class="trace-frames" data-frame-id="163" href="#">puma (3.4.0) lib/puma/configuration.rb:224:in `call&#39;</a><br><a class="trace-frames" data-frame-id="164" href="#">puma (3.4.0) lib/puma/server.rb:569:in `handle_request&#39;</a><br><a class="trace-frames" data-frame-id="165" href="#">puma (3.4.0) lib/puma/server.rb:406:in `process_client&#39;</a><br><a class="trace-frames" data-frame-id="166" href="#">puma (3.4.0) lib/puma/server.rb:271:in `block in run&#39;</a><br><a class="trace-frames" data-frame-id="167" href="#">puma (3.4.0) lib/puma/thread_pool.rb:114:in `block in spawn_thread&#39;</a><br></code></pre>
  5557.     </div>
  5558.     <div id="Full-Trace" style="display: none;">
  5559.       <pre><code><a class="trace-frames" data-frame-id="0" href="#">app/mailers/feedback_mailer.rb:18:in `block in send_feedback&#39;</a><br><a class="trace-frames" data-frame-id="1" href="#">app/mailers/feedback_mailer.rb:16:in `each&#39;</a><br><a class="trace-frames" data-frame-id="2" href="#">app/mailers/feedback_mailer.rb:16:in `send_feedback&#39;</a><br><a class="trace-frames" data-frame-id="3" href="#">app/mailers/feedback_mailer.rb:5:in `instant_report&#39;</a><br><a class="trace-frames" data-frame-id="4" href="#">actionpack (4.2.5) lib/abstract_controller/base.rb:198:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="5" href="#">actionpack (4.2.5) lib/abstract_controller/callbacks.rb:20:in `block in process_action&#39;</a><br><a class="trace-frames" data-frame-id="6" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:88:in `__run_callbacks__&#39;</a><br><a class="trace-frames" data-frame-id="7" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:778:in `_run_process_action_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="8" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:81:in `run_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="9" href="#">actionpack (4.2.5) lib/abstract_controller/callbacks.rb:19:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="10" href="#">actionpack (4.2.5) lib/abstract_controller/base.rb:137:in `process&#39;</a><br><a class="trace-frames" data-frame-id="11" href="#">actionview (4.2.5) lib/action_view/rendering.rb:30:in `process&#39;</a><br><a class="trace-frames" data-frame-id="12" href="#">actionmailer (4.2.5) lib/action_mailer/base.rb:596:in `block in process&#39;</a><br><a class="trace-frames" data-frame-id="13" href="#">activesupport (4.2.5) lib/active_support/notifications.rb:164:in `block in instrument&#39;</a><br><a class="trace-frames" data-frame-id="14" href="#">activesupport (4.2.5) lib/active_support/notifications/instrumenter.rb:20:in `instrument&#39;</a><br><a class="trace-frames" data-frame-id="15" href="#">activesupport (4.2.5) lib/active_support/notifications.rb:164:in `instrument&#39;</a><br><a class="trace-frames" data-frame-id="16" href="#">actionmailer (4.2.5) lib/action_mailer/base.rb:593:in `process&#39;</a><br><a class="trace-frames" data-frame-id="17" href="#">actionmailer (4.2.5) lib/action_mailer/base.rb:584:in `initialize&#39;</a><br><a class="trace-frames" data-frame-id="18" href="#">actionmailer (4.2.5) lib/action_mailer/message_delivery.rb:25:in `new&#39;</a><br><a class="trace-frames" data-frame-id="19" href="#">actionmailer (4.2.5) lib/action_mailer/message_delivery.rb:25:in `__getobj__&#39;</a><br><a class="trace-frames" data-frame-id="20" href="#">actionmailer (4.2.5) lib/action_mailer/message_delivery.rb:34:in `message&#39;</a><br><a class="trace-frames" data-frame-id="21" href="#">actionmailer (4.2.5) lib/action_mailer/message_delivery.rb:85:in `deliver_now&#39;</a><br><a class="trace-frames" data-frame-id="22" href="#">actionmailer (4.2.5) lib/action_mailer/delivery_job.rb:10:in `perform&#39;</a><br><a class="trace-frames" data-frame-id="23" href="#">activejob (4.2.5) lib/active_job/execution.rb:32:in `block in perform_now&#39;</a><br><a class="trace-frames" data-frame-id="24" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:117:in `call&#39;</a><br><a class="trace-frames" data-frame-id="25" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:555:in `block (2 levels) in compile&#39;</a><br><a class="trace-frames" data-frame-id="26" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:505:in `call&#39;</a><br><a class="trace-frames" data-frame-id="27" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:498:in `block (2 levels) in around&#39;</a><br><a class="trace-frames" data-frame-id="28" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:343:in `block (2 levels) in simple&#39;</a><br><a class="trace-frames" data-frame-id="29" href="#">i18n (0.7.0) lib/i18n.rb:257:in `with_locale&#39;</a><br><a class="trace-frames" data-frame-id="30" href="#">activejob (4.2.5) lib/active_job/translation.rb:7:in `block (2 levels) in &lt;module:Translation&gt;&#39;</a><br><a class="trace-frames" data-frame-id="31" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:441:in `instance_exec&#39;</a><br><a class="trace-frames" data-frame-id="32" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:441:in `block in make_lambda&#39;</a><br><a class="trace-frames" data-frame-id="33" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:342:in `block in simple&#39;</a><br><a class="trace-frames" data-frame-id="34" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:497:in `block in around&#39;</a><br><a class="trace-frames" data-frame-id="35" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:505:in `call&#39;</a><br><a class="trace-frames" data-frame-id="36" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:498:in `block (2 levels) in around&#39;</a><br><a class="trace-frames" data-frame-id="37" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:343:in `block (2 levels) in simple&#39;</a><br><a class="trace-frames" data-frame-id="38" href="#">activejob (4.2.5) lib/active_job/logging.rb:23:in `block (4 levels) in &lt;module:Logging&gt;&#39;</a><br><a class="trace-frames" data-frame-id="39" href="#">activesupport (4.2.5) lib/active_support/notifications.rb:164:in `block in instrument&#39;</a><br><a class="trace-frames" data-frame-id="40" href="#">activesupport (4.2.5) lib/active_support/notifications/instrumenter.rb:20:in `instrument&#39;</a><br><a class="trace-frames" data-frame-id="41" href="#">activesupport (4.2.5) lib/active_support/notifications.rb:164:in `instrument&#39;</a><br><a class="trace-frames" data-frame-id="42" href="#">activejob (4.2.5) lib/active_job/logging.rb:22:in `block (3 levels) in &lt;module:Logging&gt;&#39;</a><br><a class="trace-frames" data-frame-id="43" href="#">activejob (4.2.5) lib/active_job/logging.rb:43:in `block in tag_logger&#39;</a><br><a class="trace-frames" data-frame-id="44" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:68:in `block in tagged&#39;</a><br><a class="trace-frames" data-frame-id="45" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:26:in `tagged&#39;</a><br><a class="trace-frames" data-frame-id="46" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:68:in `tagged&#39;</a><br><a class="trace-frames" data-frame-id="47" href="#">activejob (4.2.5) lib/active_job/logging.rb:43:in `tag_logger&#39;</a><br><a class="trace-frames" data-frame-id="48" href="#">activejob (4.2.5) lib/active_job/logging.rb:19:in `block (2 levels) in &lt;module:Logging&gt;&#39;</a><br><a class="trace-frames" data-frame-id="49" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:441:in `instance_exec&#39;</a><br><a class="trace-frames" data-frame-id="50" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:441:in `block in make_lambda&#39;</a><br><a class="trace-frames" data-frame-id="51" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:342:in `block in simple&#39;</a><br><a class="trace-frames" data-frame-id="52" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:497:in `block in around&#39;</a><br><a class="trace-frames" data-frame-id="53" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:505:in `call&#39;</a><br><a class="trace-frames" data-frame-id="54" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:92:in `__run_callbacks__&#39;</a><br><a class="trace-frames" data-frame-id="55" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:778:in `_run_perform_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="56" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:81:in `run_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="57" href="#">activejob (4.2.5) lib/active_job/execution.rb:31:in `perform_now&#39;</a><br><a class="trace-frames" data-frame-id="58" href="#">activejob (4.2.5) lib/active_job/execution.rb:21:in `execute&#39;</a><br><a class="trace-frames" data-frame-id="59" href="#">activejob (4.2.5) lib/active_job/queue_adapters/inline_adapter.rb:14:in `enqueue&#39;</a><br><a class="trace-frames" data-frame-id="60" href="#">activejob (4.2.5) lib/active_job/enqueuing.rb:71:in `block in enqueue&#39;</a><br><a class="trace-frames" data-frame-id="61" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:117:in `call&#39;</a><br><a class="trace-frames" data-frame-id="62" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:555:in `block (2 levels) in compile&#39;</a><br><a class="trace-frames" data-frame-id="63" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:505:in `call&#39;</a><br><a class="trace-frames" data-frame-id="64" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:498:in `block (2 levels) in around&#39;</a><br><a class="trace-frames" data-frame-id="65" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:343:in `block (2 levels) in simple&#39;</a><br><a class="trace-frames" data-frame-id="66" href="#">activejob (4.2.5) lib/active_job/logging.rb:14:in `block (3 levels) in &lt;module:Logging&gt;&#39;</a><br><a class="trace-frames" data-frame-id="67" href="#">activejob (4.2.5) lib/active_job/logging.rb:43:in `block in tag_logger&#39;</a><br><a class="trace-frames" data-frame-id="68" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:68:in `block in tagged&#39;</a><br><a class="trace-frames" data-frame-id="69" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:26:in `tagged&#39;</a><br><a class="trace-frames" data-frame-id="70" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:68:in `tagged&#39;</a><br><a class="trace-frames" data-frame-id="71" href="#">activejob (4.2.5) lib/active_job/logging.rb:43:in `tag_logger&#39;</a><br><a class="trace-frames" data-frame-id="72" href="#">activejob (4.2.5) lib/active_job/logging.rb:13:in `block (2 levels) in &lt;module:Logging&gt;&#39;</a><br><a class="trace-frames" data-frame-id="73" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:441:in `instance_exec&#39;</a><br><a class="trace-frames" data-frame-id="74" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:441:in `block in make_lambda&#39;</a><br><a class="trace-frames" data-frame-id="75" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:342:in `block in simple&#39;</a><br><a class="trace-frames" data-frame-id="76" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:497:in `block in around&#39;</a><br><a class="trace-frames" data-frame-id="77" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:505:in `call&#39;</a><br><a class="trace-frames" data-frame-id="78" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:92:in `__run_callbacks__&#39;</a><br><a class="trace-frames" data-frame-id="79" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:778:in `_run_enqueue_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="80" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:81:in `run_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="81" href="#">activejob (4.2.5) lib/active_job/enqueuing.rb:67:in `enqueue&#39;</a><br><a class="trace-frames" data-frame-id="82" href="#">activejob (4.2.5) lib/active_job/configured_job.rb:13:in `perform_later&#39;</a><br><a class="trace-frames" data-frame-id="83" href="#">actionmailer (4.2.5) lib/action_mailer/message_delivery.rb:112:in `enqueue_delivery&#39;</a><br><a class="trace-frames" data-frame-id="84" href="#">actionmailer (4.2.5) lib/action_mailer/message_delivery.rb:68:in `deliver_later&#39;</a><br><a class="trace-frames" data-frame-id="85" href="#">app/context/update_feedback.rb:45:in `notify_sellers&#39;</a><br><a class="trace-frames" data-frame-id="86" href="#">app/context/update_feedback.rb:17:in `block in perform&#39;</a><br><a class="trace-frames" data-frame-id="87" href="#">/var/www/vhosts/homesway/shared/bundle/ruby/2.3.0/bundler/gems/dci-29015e0ee1b4/lib/dci/context.rb:12:in `in_context&#39;</a><br><a class="trace-frames" data-frame-id="88" href="#">app/context/update_feedback.rb:11:in `perform&#39;</a><br><a class="trace-frames" data-frame-id="89" href="#">app/controllers/api/v1/feedbacks_controller.rb:15:in `update&#39;</a><br><a class="trace-frames" data-frame-id="90" href="#">actionpack (4.2.5) lib/action_controller/metal/implicit_render.rb:4:in `send_action&#39;</a><br><a class="trace-frames" data-frame-id="91" href="#">actionpack (4.2.5) lib/abstract_controller/base.rb:198:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="92" href="#">actionpack (4.2.5) lib/action_controller/metal/rendering.rb:10:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="93" href="#">actionpack (4.2.5) lib/abstract_controller/callbacks.rb:20:in `block in process_action&#39;</a><br><a class="trace-frames" data-frame-id="94" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:117:in `call&#39;</a><br><a class="trace-frames" data-frame-id="95" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:555:in `block (2 levels) in compile&#39;</a><br><a class="trace-frames" data-frame-id="96" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:505:in `call&#39;</a><br><a class="trace-frames" data-frame-id="97" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:92:in `__run_callbacks__&#39;</a><br><a class="trace-frames" data-frame-id="98" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:778:in `_run_process_action_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="99" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:81:in `run_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="100" href="#">actionpack (4.2.5) lib/abstract_controller/callbacks.rb:19:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="101" href="#">actionpack (4.2.5) lib/action_controller/metal/rescue.rb:29:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="102" href="#">actionpack (4.2.5) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action&#39;</a><br><a class="trace-frames" data-frame-id="103" href="#">activesupport (4.2.5) lib/active_support/notifications.rb:164:in `block in instrument&#39;</a><br><a class="trace-frames" data-frame-id="104" href="#">activesupport (4.2.5) lib/active_support/notifications/instrumenter.rb:20:in `instrument&#39;</a><br><a class="trace-frames" data-frame-id="105" href="#">activesupport (4.2.5) lib/active_support/notifications.rb:164:in `instrument&#39;</a><br><a class="trace-frames" data-frame-id="106" href="#">actionpack (4.2.5) lib/action_controller/metal/instrumentation.rb:30:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="107" href="#">actionpack (4.2.5) lib/action_controller/metal/params_wrapper.rb:250:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="108" href="#">activerecord (4.2.5) lib/active_record/railties/controller_runtime.rb:18:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="109" href="#">actionpack (4.2.5) lib/abstract_controller/base.rb:137:in `process&#39;</a><br><a class="trace-frames" data-frame-id="110" href="#">actionview (4.2.5) lib/action_view/rendering.rb:30:in `process&#39;</a><br><a class="trace-frames" data-frame-id="111" href="#">actionpack (4.2.5) lib/action_controller/metal.rb:196:in `dispatch&#39;</a><br><a class="trace-frames" data-frame-id="112" href="#">actionpack (4.2.5) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch&#39;</a><br><a class="trace-frames" data-frame-id="113" href="#">actionpack (4.2.5) lib/action_controller/metal.rb:237:in `block in action&#39;</a><br><a class="trace-frames" data-frame-id="114" href="#">actionpack (4.2.5) lib/action_dispatch/routing/route_set.rb:76:in `dispatch&#39;</a><br><a class="trace-frames" data-frame-id="115" href="#">actionpack (4.2.5) lib/action_dispatch/routing/route_set.rb:45:in `serve&#39;</a><br><a class="trace-frames" data-frame-id="116" href="#">actionpack (4.2.5) lib/action_dispatch/routing/mapper.rb:49:in `serve&#39;</a><br><a class="trace-frames" data-frame-id="117" href="#">actionpack (4.2.5) lib/action_dispatch/journey/router.rb:43:in `block in serve&#39;</a><br><a class="trace-frames" data-frame-id="118" href="#">actionpack (4.2.5) lib/action_dispatch/journey/router.rb:30:in `each&#39;</a><br><a class="trace-frames" data-frame-id="119" href="#">actionpack (4.2.5) lib/action_dispatch/journey/router.rb:30:in `serve&#39;</a><br><a class="trace-frames" data-frame-id="120" href="#">actionpack (4.2.5) lib/action_dispatch/routing/route_set.rb:817:in `call&#39;</a><br><a class="trace-frames" data-frame-id="121" href="#">warden (1.2.6) lib/warden/manager.rb:35:in `block in call&#39;</a><br><a class="trace-frames" data-frame-id="122" href="#">warden (1.2.6) lib/warden/manager.rb:34:in `catch&#39;</a><br><a class="trace-frames" data-frame-id="123" href="#">warden (1.2.6) lib/warden/manager.rb:34:in `call&#39;</a><br><a class="trace-frames" data-frame-id="124" href="#">versionist (1.5.0) lib/versionist/middleware.rb:39:in `_call&#39;</a><br><a class="trace-frames" data-frame-id="125" href="#">versionist (1.5.0) lib/versionist/middleware.rb:17:in `call&#39;</a><br><a class="trace-frames" data-frame-id="126" href="#">rack (1.6.4) lib/rack/etag.rb:24:in `call&#39;</a><br><a class="trace-frames" data-frame-id="127" href="#">rack (1.6.4) lib/rack/conditionalget.rb:38:in `call&#39;</a><br><a class="trace-frames" data-frame-id="128" href="#">rack (1.6.4) lib/rack/head.rb:13:in `call&#39;</a><br><a class="trace-frames" data-frame-id="129" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/params_parser.rb:27:in `call&#39;</a><br><a class="trace-frames" data-frame-id="130" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/flash.rb:260:in `call&#39;</a><br><a class="trace-frames" data-frame-id="131" href="#">rack (1.6.4) lib/rack/session/abstract/id.rb:225:in `context&#39;</a><br><a class="trace-frames" data-frame-id="132" href="#">rack (1.6.4) lib/rack/session/abstract/id.rb:220:in `call&#39;</a><br><a class="trace-frames" data-frame-id="133" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/cookies.rb:560:in `call&#39;</a><br><a class="trace-frames" data-frame-id="134" href="#">activerecord (4.2.5) lib/active_record/query_cache.rb:36:in `call&#39;</a><br><a class="trace-frames" data-frame-id="135" href="#">activerecord (4.2.5) lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call&#39;</a><br><a class="trace-frames" data-frame-id="136" href="#">activerecord (4.2.5) lib/active_record/migration.rb:377:in `call&#39;</a><br><a class="trace-frames" data-frame-id="137" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call&#39;</a><br><a class="trace-frames" data-frame-id="138" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:88:in `__run_callbacks__&#39;</a><br><a class="trace-frames" data-frame-id="139" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:778:in `_run_call_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="140" href="#">activesupport (4.2.5) lib/active_support/callbacks.rb:81:in `run_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="141" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/callbacks.rb:27:in `call&#39;</a><br><a class="trace-frames" data-frame-id="142" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/reloader.rb:73:in `call&#39;</a><br><a class="trace-frames" data-frame-id="143" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/remote_ip.rb:78:in `call&#39;</a><br><a class="trace-frames" data-frame-id="144" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call&#39;</a><br><a class="trace-frames" data-frame-id="145" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call&#39;</a><br><a class="trace-frames" data-frame-id="146" href="#">railties (4.2.5) lib/rails/rack/logger.rb:38:in `call_app&#39;</a><br><a class="trace-frames" data-frame-id="147" href="#">railties (4.2.5) lib/rails/rack/logger.rb:20:in `block in call&#39;</a><br><a class="trace-frames" data-frame-id="148" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:68:in `block in tagged&#39;</a><br><a class="trace-frames" data-frame-id="149" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:26:in `tagged&#39;</a><br><a class="trace-frames" data-frame-id="150" href="#">activesupport (4.2.5) lib/active_support/tagged_logging.rb:68:in `tagged&#39;</a><br><a class="trace-frames" data-frame-id="151" href="#">railties (4.2.5) lib/rails/rack/logger.rb:20:in `call&#39;</a><br><a class="trace-frames" data-frame-id="152" href="#">request_store (1.3.1) lib/request_store/middleware.rb:9:in `call&#39;</a><br><a class="trace-frames" data-frame-id="153" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/request_id.rb:21:in `call&#39;</a><br><a class="trace-frames" data-frame-id="154" href="#">rack (1.6.4) lib/rack/methodoverride.rb:22:in `call&#39;</a><br><a class="trace-frames" data-frame-id="155" href="#">rack (1.6.4) lib/rack/runtime.rb:18:in `call&#39;</a><br><a class="trace-frames" data-frame-id="156" href="#">rack-timeout (0.4.2) lib/rack/timeout/core.rb:100:in `call&#39;</a><br><a class="trace-frames" data-frame-id="157" href="#">activesupport (4.2.5) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call&#39;</a><br><a class="trace-frames" data-frame-id="158" href="#">rack (1.6.4) lib/rack/lock.rb:17:in `call&#39;</a><br><a class="trace-frames" data-frame-id="159" href="#">actionpack (4.2.5) lib/action_dispatch/middleware/static.rb:116:in `call&#39;</a><br><a class="trace-frames" data-frame-id="160" href="#">rack (1.6.4) lib/rack/sendfile.rb:113:in `call&#39;</a><br><a class="trace-frames" data-frame-id="161" href="#">railties (4.2.5) lib/rails/engine.rb:518:in `call&#39;</a><br><a class="trace-frames" data-frame-id="162" href="#">railties (4.2.5) lib/rails/application.rb:165:in `call&#39;</a><br><a class="trace-frames" data-frame-id="163" href="#">puma (3.4.0) lib/puma/configuration.rb:224:in `call&#39;</a><br><a class="trace-frames" data-frame-id="164" href="#">puma (3.4.0) lib/puma/server.rb:569:in `handle_request&#39;</a><br><a class="trace-frames" data-frame-id="165" href="#">puma (3.4.0) lib/puma/server.rb:406:in `process_client&#39;</a><br><a class="trace-frames" data-frame-id="166" href="#">puma (3.4.0) lib/puma/server.rb:271:in `block in run&#39;</a><br><a class="trace-frames" data-frame-id="167" href="#">puma (3.4.0) lib/puma/thread_pool.rb:114:in `block in spawn_thread&#39;</a><br></code></pre>
  5560.     </div>
  5561.  
  5562.   <script type="text/javascript">
  5563.     var traceFrames = document.getElementsByClassName('trace-frames');
  5564.     var selectedFrame, currentSource = document.getElementById('frame-source-0');
  5565.  
  5566.     // Add click listeners for all stack frames
  5567.     for (var i = 0; i < traceFrames.length; i++) {
  5568.      traceFrames[i].addEventListener('click', function(e) {
  5569.        e.preventDefault();
  5570.        var target = e.target;
  5571.        var frame_id = target.dataset.frameId;
  5572.  
  5573.        if (selectedFrame) {
  5574.          selectedFrame.className = selectedFrame.className.replace("selected", "");
  5575.        }
  5576.  
  5577.        target.className += " selected";
  5578.        selectedFrame = target;
  5579.  
  5580.        // Change the extracted source code
  5581.        changeSourceExtract(frame_id);
  5582.      });
  5583.  
  5584.      function changeSourceExtract(frame_id) {
  5585.        var el = document.getElementById('frame-source-' + frame_id);
  5586.        if (currentSource && el) {
  5587.          currentSource.className += " hidden";
  5588.          el.className = el.className.replace(" hidden", "");
  5589.          currentSource = el;
  5590.        }
  5591.      }
  5592.    }
  5593.  </script>
  5594. </div>
  5595.  
  5596.  
  5597.  
  5598. <h2 style="margin-top: 30px">Request</h2>
  5599. <p><b>Parameters</b>:</p> <pre>{&quot;rooms_feedback&quot;=&gt;[{&quot;id&quot;=&gt;&quot;9&quot;,
  5600.  &quot;disliked_features&quot;=&gt;[&quot;13&quot;],
  5601.  &quot;liked_features&quot;=&gt;[&quot;12&quot;]}],
  5602.  &quot;status&quot;=&gt;&quot;like&quot;,
  5603.  &quot;id&quot;=&gt;&quot;68&quot;,
  5604.  &quot;feedback&quot;=&gt;{}}</pre>
  5605.  
  5606. <div class="details">
  5607.   <div class="summary"><a href="#" onclick="return toggleSessionDump()">Toggle session dump</a></div>
  5608.   <div id="session_dump" style="display:none"><pre></pre></div>
  5609. </div>
  5610.  
  5611. <div class="details">
  5612.   <div class="summary"><a href="#" onclick="return toggleEnvDump()">Toggle env dump</a></div>
  5613.   <div id="env_dump" style="display:none"><pre>GATEWAY_INTERFACE: &quot;CGI/1.2&quot;
  5614. HTTP_ACCEPT: &quot;*/*&quot;
  5615. HTTP_ACCEPT_ENCODING: &quot;gzip;q=1.0, compress;q=0.5&quot;
  5616. HTTP_ACCEPT_LANGUAGE: &quot;en-US;q=1.0, ru-US;q=0.9, ar-US;q=0.8, ru-RU;q=0.7&quot;
  5617. REMOTE_ADDR: &quot;127.0.0.1&quot;
  5618. SERVER_NAME: &quot;homesway-stage.yalantis.com&quot;
  5619. SERVER_PROTOCOL: &quot;HTTP/1.1&quot;</pre></div>
  5620. </div>
  5621.  
  5622. <h2 style="margin-top: 30px">Response</h2>
  5623. <p><b>Headers</b>:</p> <pre>None</pre>
  5624.  
  5625. </div>
  5626.  
  5627.  
  5628. </body>
  5629. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement