aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/templates/rescues/_trace.rhtml
blob: 59dcf3d9e6fb5e056dfb667924427cf61abd2dbc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<%
  traces = [
    ["Application Trace", @exception.application_backtrace],
    ["Framework Trace", @exception.framework_backtrace],
    ["Full Trace", @exception.clean_backtrace]
  ]
  if defined?(RAILS_ROOT)
    traces.each { |name, trace| trace.map! { |p| p.gsub(/^(?:\.\/)?#{RAILS_ROOT}/, '<b>#{RAILS_ROOT}</b>') } }
  end
  names = traces.collect {|name, trace| name}
%>

<p><code>RAILS_ROOT: <%= RAILS_ROOT %></code></p>

<div id="traces">
  <% names.each do |name| -%>
    <%
      show = "document.getElementById('#{name.gsub /\s/, '-'}').style.display='block';"
      hide = (names - [name]).collect {|hide_name| "document.getElementById('#{hide_name.gsub /\s/, '-'}').style.display='none';"}
    %>
    <a href="#" onclick="<%= hide %><%= show %>; return false;"><%= name %></a> <%= '|' unless names.last == name %>
  <% end -%>

  <% traces.each do |name, trace| -%>
    <div id="<%= name.gsub /\s/, '-' %>" style="display: <%= name == "Application Trace" ? 'block' : 'none' %>;">
      <pre><code><%= trace.join "\n" %></code></pre>
    </div>
  <% end -%>
</div>