chrisb/rack-faraday_inspector

View on GitHub
assets/html/inspector.html.erb

Summary

Maintainability
Test Coverage
<style type='text/css'>
<!--
  <%= @css %>
-->
</style>

<script type="text/javascript">
//<![CDATA[
  <%= @javascript %>
//]]>
</script>

<div class='faraday_inspector minimized' data-version="<%= Rack::FaradayInspector::VERSION %>" data-asset-version="<%= Rack::FaradayInspector::ASSET_VERSION %>">
  <div class='prompt'>
    <%= Thread.current[:faraday_requests].count %> Faraday Request<%= 's' unless Thread.current[:faraday_requests].to_a.count == 1 %>
  </div>
  <div class='close'>&times;</div>
  <table class='faraday_inspector-requests'>
    <% Thread.current[:faraday_requests].to_a.each do |event| %>
      <% req = event[:env] %>
      <% request_id = event.hash %>
      <% is_json = req[:body].present? && req[:response_headers].try(:[], 'content-type').to_s.include?('json') %>
      <tr class='event'>
        <td class='method'><%= req.method.upcase %></td>
        <td class='host'><%= req.url.host %></td>
        <td class='path'><%= req.url.path %></td>
        <td class='duration'><%= event[:duration].round(3) %>s</td>
        <td class='status'><%= req.status %></td>
      </tr>
      <tr>
        <td colspan='5'>
          <div class='request <%= 'json' if is_json %>' id='request-<%= request_id %>'>
            <pre class='body'>
              <% if req[:body].present? %>
                <% if is_json %>
                  <script type="text/javascript">
                  //<![CDATA[
                    var responseObject = <%= req[:body] %>;
                    $('#request-<%= request_id %> pre').html(library.json.prettyPrint(responseObject));
                  //]]>
                  </script>
                <% else %>
                  <%= CGI.escapeHTML(req[:body]).gsub("\n", "<br />") %>
                <% end %>
              <% else %>
                (No body for this request.)
              <% end %>
            </pre>
          </div>
        </td>
      </tr>
    <% end %>
  </table>
</div>