Class: Sinatra::ShowExceptions
- Defined in:
- lib/sinarey_support/sinatra/exception_template.rb
Constant Summary collapse
- TEMPLATE =
:nodoc:
"<!DOCTYPE html>\n<html>\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n <title><%= exception.class %> at <%= path %></title>\n\n <script type=\"text/javascript\">\n //<!--\n function toggle(id) {\n var pre = document.getElementById(\"pre-\" + id);\n var post = document.getElementById(\"post-\" + id);\n var context = document.getElementById(\"context-\" + id);\n\n if (pre.style.display == 'block') {\n pre.style.display = 'none';\n post.style.display = 'none';\n context.style.background = \"none\";\n } else {\n pre.style.display = 'block';\n post.style.display = 'block';\n context.style.background = \"#fffed9\";\n }\n }\n\n function toggleBacktrace(){\n var bt = document.getElementById(\"backtrace\");\n var toggler = document.getElementById(\"expando\");\n\n if (bt.className == 'condensed') {\n bt.className = 'expanded';\n toggler.innerHTML = \"(condense)\";\n } else {\n bt.className = 'condensed';\n toggler.innerHTML = \"(expand)\";\n }\n }\n //-->\n </script>\n\n<style type=\"text/css\" media=\"screen\">\n * {margin: 0; padding: 0; border: 0; outline: 0;}\n div.clear {clear: both;}\n body {background: #EEEEEE; margin: 0; padding: 0;\n font-family: 'Lucida Grande', 'Lucida Sans Unicode',\n 'Garuda';}\n code {font-family: 'Lucida Console', monospace;\n font-size: 12px;}\n li {height: 18px;}\n ul {list-style: none; margin: 0; padding: 0;}\n ol:hover {cursor: pointer;}\n ol li {white-space: pre;}\n #explanation {font-size: 12px; color: #666666;\n margin: 20px 0 0 100px;}\n/* WRAP */\n #wrap {width: 1000px; background: #FFFFFF; margin: 0 auto;\n padding: 30px 50px 20px 50px;\n border-left: 1px solid #DDDDDD;\n border-right: 1px solid #DDDDDD;}\n/* HEADER */\n #header {margin: 0 auto 25px auto;}\n #header img {float: left;}\n #header #summary {float: left; margin: 12px 0 0 20px; width:660px;\n font-family: 'Lucida Grande', 'Lucida Sans Unicode';}\n h1 {margin: 0; font-size: 36px; color: #981919;}\n h2 {margin: 0; font-size: 22px; color: #333333;}\n #header ul {margin: 0; font-size: 12px; color: #666666;}\n #header ul li strong{color: #444444;}\n #header ul li {display: inline; padding: 0 10px;}\n #header ul li.first {padding-left: 0;}\n #header ul li.last {border: 0; padding-right: 0;}\n/* BODY */\n #backtrace,\n #get,\n #post,\n #cookies,\n #rack {width: 980px; margin: 0 auto 10px auto;}\n p#nav {float: right; font-size: 14px;}\n/* BACKTRACE */\n a#expando {float: left; padding-left: 5px; color: #666666;\n font-size: 14px; text-decoration: none; cursor: pointer;}\n a#expando:hover {text-decoration: underline;}\n h3 {float: left; width: 100px; margin-bottom: 10px;\n color: #981919; font-size: 14px; font-weight: bold;}\n #nav a {color: #666666; text-decoration: none; padding: 0 5px;}\n #backtrace li.frame-info {background: #f7f7f7; padding-left: 10px;\n font-size: 12px; color: #333333;}\n #backtrace ul {list-style-position: outside; border: 1px solid #E9E9E9;\n border-bottom: 0;}\n #backtrace ol {width: 920px; margin-left: 50px;\n font: 10px 'Lucida Console', monospace; color: #666666;}\n #backtrace ol li {border: 0; border-left: 1px solid #E9E9E9;\n padding: 2px 0;}\n #backtrace ol code {font-size: 10px; color: #555555; padding-left: 5px;}\n #backtrace-ul li {border-bottom: 1px solid #E9E9E9; height: auto;\n padding: 3px 0;}\n #backtrace-ul .code {padding: 6px 0 4px 0;}\n #backtrace.condensed .system,\n #backtrace.condensed .framework {display:none;}\n/* REQUEST DATA */\n p.no-data {padding-top: 2px; font-size: 12px; color: #666666;}\n table.req {width: 980px; text-align: left; font-size: 12px;\n color: #666666; padding: 0; border-spacing: 0;\n border: 1px solid #EEEEEE; border-bottom: 0;\n border-left: 0;\n clear:both}\n table.req tr th {padding: 2px 10px; font-weight: bold;\n background: #F7F7F7; border-bottom: 1px solid #EEEEEE;\n border-left: 1px solid #EEEEEE;}\n table.req tr td {padding: 2px 20px 2px 10px;\n border-bottom: 1px solid #EEEEEE;\n border-left: 1px solid #EEEEEE;}\n/* HIDE PRE/POST CODE AT START */\n .pre-context,\n .post-context {display: none;}\n\n table td.code {width:750px}\n table td.code div {width:750px;overflow:hidden}\n</style>\n</head>\n<body>\n <div id=\"wrap\">\n <div id=\"header\">\n <img src=\"<%== env['SCRIPT_NAME'] %>/__sinatra__/500.png\" alt=\"application error\" height=\"161\" width=\"313\" />\n <div id=\"summary\">\n <h1><strong><%= exception.class %></strong> at <strong><%= path %>\n </strong></h1>\n <h2><%= exception.message %></h2>\n <ul>\n <li class=\"first\"><strong>file:</strong> <code>\n <%= frames.first.filename.split(\"/\").last %></code></li>\n <li><strong>location:</strong> <code><%= frames.first.function %>\n </code></li>\n <li class=\"last\"><strong>line:\n </strong> <%= frames.first.lineno %></li>\n </ul>\n </div>\n <div class=\"clear\"></div>\n </div>\n\n <div id=\"backtrace\" class='condensed'>\n <h3>BACKTRACE</h3>\n <p><a href=\"#\" id=\"expando\"\n onclick=\"toggleBacktrace(); return false\">(expand)</a></p>\n <p id=\"nav\"><strong>JUMP TO:</strong>\n <a href=\"#get-info\">GET</a>\n <a href=\"#post-info\">POST</a>\n <a href=\"#cookie-info\">COOKIES</a>\n <a href=\"#env-info\">ENV</a>\n </p>\n <div class=\"clear\"></div>\n\n <ul id=\"backtrace-ul\">\n\n <% id = 1 %>\n <% frames.each do |frame| %>\n <% if frame.context_line && frame.context_line != \"#\" %>\n\n <li class=\"frame-info <%== frame_class(frame) %>\">\n <code><%= frame.filename %></code> in\n <code><strong><%= frame.function %></strong></code>\n </li>\n\n <li class=\"code <%== frame_class(frame) %>\">\n <% if frame.pre_context %>\n <ol start=\"<%= frame.pre_context_lineno + 1 %>\"\n class=\"pre-context\" id=\"pre-<%== id %>\"\n onclick=\"toggle(<%== id %>);\">\n <% frame.pre_context.each do |line| %>\n <li class=\"pre-context-line\"><code><%= line %></code></li>\n <% end %>\n </ol>\n <% end %>\n\n <ol start=\"<%== frame.lineno %>\" class=\"context\" id=\"<%== id %>\"\n onclick=\"toggle(<%== id %>);\">\n <li class=\"context-line\" id=\"context-<%== id %>\"><code><%= frame.context_line %></code></li>\n </ol>\n\n <% if frame.post_context %>\n <ol start=\"<%= frame.lineno + 1 %>\" class=\"post-context\"\n id=\"post-<%== id %>\" onclick=\"toggle(<%== id %>);\">\n <% frame.post_context.each do |line| %>\n <li class=\"post-context-line\"><code><%= line %></code></li>\n <% end %>\n </ol>\n <% end %>\n <div class=\"clear\"></div>\n </li>\n\n <% end %>\n\n <% id += 1 %>\n <% end %>\n\n </ul>\n </div> <!-- /BACKTRACE -->\n\n <div id=\"get\">\n <h3 id=\"get-info\">GET</h3>\n <% if req.GET and not req.GET.empty? %>\n <table class=\"req\">\n <tr>\n <th>Variable</th>\n <th>Value</th>\n </tr>\n <% req.GET.sort_by { |k, v| k.to_s }.each { |key, val| %>\n <tr>\n <td><%= key %></td>\n <td class=\"code\"><div><%= val.inspect %></div></td>\n </tr>\n <% } %>\n </table>\n <% else %>\n <p class=\"no-data\">No GET data.</p>\n <% end %>\n <div class=\"clear\"></div>\n </div> <!-- /GET -->\n\n <div id=\"post\">\n <h3 id=\"post-info\">POST</h3>\n <% if req.POST and not req.POST.empty? %>\n <table class=\"req\">\n <tr>\n <th>Variable</th>\n <th>Value</th>\n </tr>\n <% req.POST.sort_by { |k, v| k.to_s }.each { |key, val| %>\n <tr>\n <td><%= key %></td>\n <td class=\"code\"><div><%= val.inspect %></div></td>\n </tr>\n <% } %>\n </table>\n <% else %>\n <p class=\"no-data\">No POST data.</p>\n <% end %>\n <div class=\"clear\"></div>\n </div> <!-- /POST -->\n\n <div id=\"cookies\">\n <h3 id=\"cookie-info\">COOKIES</h3>\n <% unless req.cookies.empty? %>\n <table class=\"req\">\n <tr>\n <th>Variable</th>\n <th>Value</th>\n </tr>\n <% req.cookies.each { |key, val| %>\n <tr>\n <td><%= key %></td>\n <td class=\"code\"><div><%= val.inspect %></div></td>\n </tr>\n <% } %>\n </table>\n <% else %>\n <p class=\"no-data\">No cookie data.</p>\n <% end %>\n <div class=\"clear\"></div>\n </div> <!-- /COOKIES -->\n\n <div id=\"rack\">\n <h3 id=\"env-info\">Rack ENV</h3>\n <table class=\"req\">\n <tr>\n <th>Variable</th>\n <th>Value</th>\n </tr>\n <% env.sort_by { |k, v| k.to_s }.each { |key, val| %>\n <tr>\n <td><%= key %></td>\n <td class=\"code\"><div><%= val %></div></td>\n </tr>\n <% } %>\n </table>\n <div class=\"clear\"></div>\n </div> <!-- /RACK ENV -->\n\n <p id=\"explanation\">You're seeing this error because you have\nenabled the <code>show_exceptions</code> setting.</p>\n </div> <!-- /WRAP -->\n </body>\n</\n" # :nodoc: