Skip to content

Instantly share code, notes, and snippets.

@BRIMIL01
Created May 10, 2013 17:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BRIMIL01/5555942 to your computer and use it in GitHub Desktop.
Save BRIMIL01/5555942 to your computer and use it in GitHub Desktop.
~/dev/rliapi_json/pkg(master ✔) gem inabox rliapi_json-0.0.7.gem
Enter the root url for your personal geminabox instance. (E.g. http://gems/)
Host: http://gems.wh.reachlocal.com:9292/
Pushing rliapi_json-0.0.7.gem to http://gems.wh.reachlocal.com:9292/...
ERROR: Error (500 received)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Errno::EIO at &#x2F;upload</title>
<script type="text/javascript">
//<!--
function toggle(id) {
var pre = document.getElementById("pre-" + id);
var post = document.getElementById("post-" + id);
var context = document.getElementById("context-" + id);
if (pre.style.display == 'block') {
pre.style.display = 'none';
post.style.display = 'none';
context.style.background = "none";
} else {
pre.style.display = 'block';
post.style.display = 'block';
context.style.background = "#fffed9";
}
}
function toggleBacktrace(){
var bt = document.getElementById("backtrace");
var toggler = document.getElementById("expando");
if (bt.className == 'condensed') {
bt.className = 'expanded';
toggler.innerHTML = "(condense)";
} else {
bt.className = 'condensed';
toggler.innerHTML = "(expand)";
}
}
//-->
</script>
<style type="text/css" media="screen">
* {margin: 0; padding: 0; border: 0; outline: 0;}
div.clear {clear: both;}
body {background: #EEEEEE; margin: 0; padding: 0;
font-family: 'Lucida Grande', 'Lucida Sans Unicode',
'Garuda';}
code {font-family: 'Lucida Console', monospace;
font-size: 12px;}
li {height: 18px;}
ul {list-style: none; margin: 0; padding: 0;}
ol:hover {cursor: pointer;}
ol li {white-space: pre;}
#explanation {font-size: 12px; color: #666666;
margin: 20px 0 0 100px;}
/* WRAP */
#wrap {width: 1000px; background: #FFFFFF; margin: 0 auto;
padding: 30px 50px 20px 50px;
border-left: 1px solid #DDDDDD;
border-right: 1px solid #DDDDDD;}
/* HEADER */
#header {margin: 0 auto 25px auto;}
#header img {float: left;}
#header #summary {float: left; margin: 12px 0 0 20px; width:660px;
font-family: 'Lucida Grande', 'Lucida Sans Unicode';}
h1 {margin: 0; font-size: 36px; color: #981919;}
h2 {margin: 0; font-size: 22px; color: #333333;}
#header ul {margin: 0; font-size: 12px; color: #666666;}
#header ul li strong{color: #444444;}
#header ul li {display: inline; padding: 0 10px;}
#header ul li.first {padding-left: 0;}
#header ul li.last {border: 0; padding-right: 0;}
/* BODY */
#backtrace,
#get,
#post,
#cookies,
#rack {width: 980px; margin: 0 auto 10px auto;}
p#nav {float: right; font-size: 14px;}
/* BACKTRACE */
a#expando {float: left; padding-left: 5px; color: #666666;
font-size: 14px; text-decoration: none; cursor: pointer;}
a#expando:hover {text-decoration: underline;}
h3 {float: left; width: 100px; margin-bottom: 10px;
color: #981919; font-size: 14px; font-weight: bold;}
#nav a {color: #666666; text-decoration: none; padding: 0 5px;}
#backtrace li.frame-info {background: #f7f7f7; padding-left: 10px;
font-size: 12px; color: #333333;}
#backtrace ul {list-style-position: outside; border: 1px solid #E9E9E9;
border-bottom: 0;}
#backtrace ol {width: 920px; margin-left: 50px;
font: 10px 'Lucida Console', monospace; color: #666666;}
#backtrace ol li {border: 0; border-left: 1px solid #E9E9E9;
padding: 2px 0;}
#backtrace ol code {font-size: 10px; color: #555555; padding-left: 5px;}
#backtrace-ul li {border-bottom: 1px solid #E9E9E9; height: auto;
padding: 3px 0;}
#backtrace-ul .code {padding: 6px 0 4px 0;}
#backtrace.condensed .system,
#backtrace.condensed .framework {display:none;}
/* REQUEST DATA */
p.no-data {padding-top: 2px; font-size: 12px; color: #666666;}
table.req {width: 980px; text-align: left; font-size: 12px;
color: #666666; padding: 0; border-spacing: 0;
border: 1px solid #EEEEEE; border-bottom: 0;
border-left: 0;
clear:both}
table.req tr th {padding: 2px 10px; font-weight: bold;
background: #F7F7F7; border-bottom: 1px solid #EEEEEE;
border-left: 1px solid #EEEEEE;}
table.req tr td {padding: 2px 20px 2px 10px;
border-bottom: 1px solid #EEEEEE;
border-left: 1px solid #EEEEEE;}
/* HIDE PRE/POST CODE AT START */
.pre-context,
.post-context {display: none;}
table td.code {width:750px}
table td.code div {width:750px;overflow:hidden}
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<img src="/__sinatra__/500.png" alt="application error" height="161" width="313" />
<div id="summary">
<h1><strong>Errno::EIO</strong> at <strong>&#x2F;upload
</strong></h1>
<h2>Input&#x2F;output error - &lt;STDERR&gt;</h2>
<ul>
<li class="first"><strong>file:</strong> <code>
lint.rb</code></li>
<li><strong>location:</strong> <code>write
</code></li>
<li class="last"><strong>line:
</strong> 408</li>
</ul>
</div>
<div class="clear"></div>
</div>
<div id="backtrace" class='condensed'>
<h3>BACKTRACE</h3>
<p><a href="#" id="expando"
onclick="toggleBacktrace(); return false">(expand)</a></p>
<p id="nav"><strong>JUMP TO:</strong>
<a href="#get-info">GET</a>
<a href="#post-info">POST</a>
<a href="#cookie-info">COOKIES</a>
<a href="#env-info">ENV</a>
</p>
<div class="clear"></div>
<ul id="backtrace-ul">
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-1.5.2&#x2F;lib&#x2F;rack&#x2F;lint.rb</code> in
<code><strong>write</strong></code>
</li>
<li class="code system">
<ol start="401"
class="pre-context" id="pre-1"
onclick="toggle(1);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def initialize(error)
</code></li>
<li class="pre-context-line"><code> @error = error
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> ## * +puts+ must be called with a single argument that responds to +to_s+.
</code></li>
<li class="pre-context-line"><code> def puts(str)
</code></li>
</ol>
<ol start="408" class="context" id="1"
onclick="toggle(1);">
<li class="context-line" id="context-1"><code> @error.puts str</code></li>
</ol>
<ol start="409" class="post-context"
id="post-1" onclick="toggle(1);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> ## * +write+ must be called with a single argument that is a String.
</code></li>
<li class="post-context-line"><code> def write(str)
</code></li>
<li class="post-context-line"><code> assert(&quot;rack.errors#write not called with a String&quot;) { str.kind_of? String }
</code></li>
<li class="post-context-line"><code> @error.write str
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-1.5.2&#x2F;lib&#x2F;rack&#x2F;lint.rb</code> in
<code><strong>puts</strong></code>
</li>
<li class="code system">
<ol start="401"
class="pre-context" id="pre-2"
onclick="toggle(2);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def initialize(error)
</code></li>
<li class="pre-context-line"><code> @error = error
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> ## * +puts+ must be called with a single argument that responds to +to_s+.
</code></li>
<li class="pre-context-line"><code> def puts(str)
</code></li>
</ol>
<ol start="408" class="context" id="2"
onclick="toggle(2);">
<li class="context-line" id="context-2"><code> @error.puts str</code></li>
</ol>
<ol start="409" class="post-context"
id="post-2" onclick="toggle(2);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> ## * +write+ must be called with a single argument that is a String.
</code></li>
<li class="post-context-line"><code> def write(str)
</code></li>
<li class="post-context-line"><code> assert(&quot;rack.errors#write not called with a String&quot;) { str.kind_of? String }
</code></li>
<li class="post-context-line"><code> @error.write str
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-1.5.2&#x2F;lib&#x2F;rack&#x2F;lint.rb</code> in
<code><strong>puts</strong></code>
</li>
<li class="code system">
<ol start="401"
class="pre-context" id="pre-3"
onclick="toggle(3);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def initialize(error)
</code></li>
<li class="pre-context-line"><code> @error = error
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> ## * +puts+ must be called with a single argument that responds to +to_s+.
</code></li>
<li class="pre-context-line"><code> def puts(str)
</code></li>
</ol>
<ol start="408" class="context" id="3"
onclick="toggle(3);">
<li class="context-line" id="context-3"><code> @error.puts str</code></li>
</ol>
<ol start="409" class="post-context"
id="post-3" onclick="toggle(3);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> ## * +write+ must be called with a single argument that is a String.
</code></li>
<li class="post-context-line"><code> def write(str)
</code></li>
<li class="post-context-line"><code> assert(&quot;rack.errors#write not called with a String&quot;) { str.kind_of? String }
</code></li>
<li class="post-context-line"><code> @error.write str
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>dump_errors!</strong></code>
</li>
<li class="code framework">
<ol start="1106"
class="pre-context" id="pre-4"
onclick="toggle(4);">
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code> return false unless key.respond_to? :superclass and key.superclass &lt; Exception
</code></li>
<li class="pre-context-line"><code> error_block!(key.superclass, *block_params)
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def dump_errors!(boom)
</code></li>
<li class="pre-context-line"><code> msg = [&quot;#{boom.class} - #{boom.message}:&quot;, *boom.backtrace].join(&quot;\n\t&quot;)
</code></li>
</ol>
<ol start="1113" class="context" id="4"
onclick="toggle(4);">
<li class="context-line" id="context-4"><code> @env[&#x27;rack.errors&#x27;].puts(msg)</code></li>
</ol>
<ol start="1114" class="post-context"
id="post-4" onclick="toggle(4);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> class &lt;&lt; self
</code></li>
<li class="post-context-line"><code> attr_reader :routes, :filters, :templates, :errors
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> # Removes all routes, filters, middleware and extension hooks from the
</code></li>
<li class="post-context-line"><code> # current class (not routes&#x2F;filters&#x2F;... defined by its superclass).
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>handle_exception!</strong></code>
</li>
<li class="code framework">
<ol start="1073"
class="pre-context" id="pre-5"
onclick="toggle(5);">
<li class="pre-context-line"><code> else
</code></li>
<li class="pre-context-line"><code> status(500)
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> status(500) unless status.between? 400, 599
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> if server_error?
</code></li>
</ol>
<ol start="1080" class="context" id="5"
onclick="toggle(5);">
<li class="context-line" id="context-5"><code> dump_errors! boom if settings.dump_errors?</code></li>
</ol>
<ol start="1081" class="post-context"
id="post-5" onclick="toggle(5);">
<li class="post-context-line"><code> raise boom if settings.show_exceptions? and settings.show_exceptions != :after_handler
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> if not_found?
</code></li>
<li class="post-context-line"><code> headers[&#x27;X-Cascade&#x27;] = &#x27;pass&#x27; if settings.x_cascade?
</code></li>
<li class="post-context-line"><code> body &#x27;&lt;h1&gt;Not Found&lt;&#x2F;h1&gt;&#x27;
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>block in dispatch!</strong></code>
</li>
<li class="code framework">
<ol start="1049"
class="pre-context" id="pre-6"
onclick="toggle(6);">
<li class="pre-context-line"><code> def dispatch!
</code></li>
<li class="pre-context-line"><code> invoke do
</code></li>
<li class="pre-context-line"><code> static! if settings.static? &amp;&amp; (request.get? || request.head?)
</code></li>
<li class="pre-context-line"><code> filter! :before
</code></li>
<li class="pre-context-line"><code> route!
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code> rescue ::Exception =&gt; boom
</code></li>
</ol>
<ol start="1056" class="context" id="6"
onclick="toggle(6);">
<li class="context-line" id="context-6"><code> invoke { handle_exception!(boom) }</code></li>
</ol>
<ol start="1057" class="post-context"
id="post-6" onclick="toggle(6);">
<li class="post-context-line"><code> ensure
</code></li>
<li class="post-context-line"><code> begin
</code></li>
<li class="post-context-line"><code> filter! :after unless env[&#x27;sinatra.static_file&#x27;]
</code></li>
<li class="post-context-line"><code> rescue ::Exception =&gt; boom
</code></li>
<li class="post-context-line"><code> invoke { handle_exception!(boom) } unless @env[&#x27;sinatra.error&#x27;]
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>block in invoke</strong></code>
</li>
<li class="code framework">
<ol start="1028"
class="pre-context" id="pre-7"
onclick="toggle(7);">
<li class="pre-context-line"><code> # Creates a Hash with indifferent access.
</code></li>
<li class="pre-context-line"><code> def indifferent_hash
</code></li>
<li class="pre-context-line"><code> Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Run the block with &#x27;throw :halt&#x27; support and apply result to the response.
</code></li>
<li class="pre-context-line"><code> def invoke
</code></li>
</ol>
<ol start="1035" class="context" id="7"
onclick="toggle(7);">
<li class="context-line" id="context-7"><code> res = catch(:halt) { yield }</code></li>
</ol>
<ol start="1036" class="post-context"
id="post-7" onclick="toggle(7);">
<li class="post-context-line"><code> res = [res] if Fixnum === res or String === res
</code></li>
<li class="post-context-line"><code> if Array === res and Fixnum === res.first
</code></li>
<li class="post-context-line"><code> res = res.dup
</code></li>
<li class="post-context-line"><code> status(res.shift)
</code></li>
<li class="post-context-line"><code> body(res.pop)
</code></li>
<li class="post-context-line"><code> headers(*res)
</code></li>
<li class="post-context-line"><code> elsif res.respond_to? :each
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>catch</strong></code>
</li>
<li class="code framework">
<ol start="1028"
class="pre-context" id="pre-8"
onclick="toggle(8);">
<li class="pre-context-line"><code> # Creates a Hash with indifferent access.
</code></li>
<li class="pre-context-line"><code> def indifferent_hash
</code></li>
<li class="pre-context-line"><code> Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Run the block with &#x27;throw :halt&#x27; support and apply result to the response.
</code></li>
<li class="pre-context-line"><code> def invoke
</code></li>
</ol>
<ol start="1035" class="context" id="8"
onclick="toggle(8);">
<li class="context-line" id="context-8"><code> res = catch(:halt) { yield }</code></li>
</ol>
<ol start="1036" class="post-context"
id="post-8" onclick="toggle(8);">
<li class="post-context-line"><code> res = [res] if Fixnum === res or String === res
</code></li>
<li class="post-context-line"><code> if Array === res and Fixnum === res.first
</code></li>
<li class="post-context-line"><code> res = res.dup
</code></li>
<li class="post-context-line"><code> status(res.shift)
</code></li>
<li class="post-context-line"><code> body(res.pop)
</code></li>
<li class="post-context-line"><code> headers(*res)
</code></li>
<li class="post-context-line"><code> elsif res.respond_to? :each
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>invoke</strong></code>
</li>
<li class="code framework">
<ol start="1028"
class="pre-context" id="pre-9"
onclick="toggle(9);">
<li class="pre-context-line"><code> # Creates a Hash with indifferent access.
</code></li>
<li class="pre-context-line"><code> def indifferent_hash
</code></li>
<li class="pre-context-line"><code> Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Run the block with &#x27;throw :halt&#x27; support and apply result to the response.
</code></li>
<li class="pre-context-line"><code> def invoke
</code></li>
</ol>
<ol start="1035" class="context" id="9"
onclick="toggle(9);">
<li class="context-line" id="context-9"><code> res = catch(:halt) { yield }</code></li>
</ol>
<ol start="1036" class="post-context"
id="post-9" onclick="toggle(9);">
<li class="post-context-line"><code> res = [res] if Fixnum === res or String === res
</code></li>
<li class="post-context-line"><code> if Array === res and Fixnum === res.first
</code></li>
<li class="post-context-line"><code> res = res.dup
</code></li>
<li class="post-context-line"><code> status(res.shift)
</code></li>
<li class="post-context-line"><code> body(res.pop)
</code></li>
<li class="post-context-line"><code> headers(*res)
</code></li>
<li class="post-context-line"><code> elsif res.respond_to? :each
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>rescue in dispatch!</strong></code>
</li>
<li class="code framework">
<ol start="1049"
class="pre-context" id="pre-10"
onclick="toggle(10);">
<li class="pre-context-line"><code> def dispatch!
</code></li>
<li class="pre-context-line"><code> invoke do
</code></li>
<li class="pre-context-line"><code> static! if settings.static? &amp;&amp; (request.get? || request.head?)
</code></li>
<li class="pre-context-line"><code> filter! :before
</code></li>
<li class="pre-context-line"><code> route!
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code> rescue ::Exception =&gt; boom
</code></li>
</ol>
<ol start="1056" class="context" id="10"
onclick="toggle(10);">
<li class="context-line" id="context-10"><code> invoke { handle_exception!(boom) }</code></li>
</ol>
<ol start="1057" class="post-context"
id="post-10" onclick="toggle(10);">
<li class="post-context-line"><code> ensure
</code></li>
<li class="post-context-line"><code> begin
</code></li>
<li class="post-context-line"><code> filter! :after unless env[&#x27;sinatra.static_file&#x27;]
</code></li>
<li class="post-context-line"><code> rescue ::Exception =&gt; boom
</code></li>
<li class="post-context-line"><code> invoke { handle_exception!(boom) } unless @env[&#x27;sinatra.error&#x27;]
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>dispatch!</strong></code>
</li>
<li class="code framework">
<ol start="1056"
class="pre-context" id="pre-11"
onclick="toggle(11);">
<li class="pre-context-line"><code> invoke { handle_exception!(boom) }
</code></li>
<li class="pre-context-line"><code> ensure
</code></li>
<li class="pre-context-line"><code> begin
</code></li>
<li class="pre-context-line"><code> filter! :after unless env[&#x27;sinatra.static_file&#x27;]
</code></li>
<li class="pre-context-line"><code> rescue ::Exception =&gt; boom
</code></li>
<li class="pre-context-line"><code> invoke { handle_exception!(boom) } unless @env[&#x27;sinatra.error&#x27;]
</code></li>
<li class="pre-context-line"><code> end
</code></li>
</ol>
<ol start="1063" class="context" id="11"
onclick="toggle(11);">
<li class="context-line" id="context-11"><code> end</code></li>
</ol>
<ol start="1064" class="post-context"
id="post-11" onclick="toggle(11);">
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> # Error handling during requests.
</code></li>
<li class="post-context-line"><code> def handle_exception!(boom)
</code></li>
<li class="post-context-line"><code> @env[&#x27;sinatra.error&#x27;] = boom
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> if boom.respond_to? :http_status
</code></li>
<li class="post-context-line"><code> status(boom.http_status)
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>block in call!</strong></code>
</li>
<li class="code framework">
<ol start="871"
class="pre-context" id="pre-12"
onclick="toggle(12);">
<li class="pre-context-line"><code> @request = Request.new(env)
</code></li>
<li class="pre-context-line"><code> @response = Response.new
</code></li>
<li class="pre-context-line"><code> @params = indifferent_params(@request.params)
</code></li>
<li class="pre-context-line"><code> template_cache.clear if settings.reload_templates
</code></li>
<li class="pre-context-line"><code> force_encoding(@params)
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> @response[&#x27;Content-Type&#x27;] = nil
</code></li>
</ol>
<ol start="878" class="context" id="12"
onclick="toggle(12);">
<li class="context-line" id="context-12"><code> invoke { dispatch! }</code></li>
</ol>
<ol start="879" class="post-context"
id="post-12" onclick="toggle(12);">
<li class="post-context-line"><code> invoke { error_block!(response.status) } unless @env[&#x27;sinatra.error&#x27;]
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> unless @response[&#x27;Content-Type&#x27;]
</code></li>
<li class="post-context-line"><code> if Array === body and body[0].respond_to? :content_type
</code></li>
<li class="post-context-line"><code> content_type body[0].content_type
</code></li>
<li class="post-context-line"><code> else
</code></li>
<li class="post-context-line"><code> content_type :html
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>block in invoke</strong></code>
</li>
<li class="code framework">
<ol start="1028"
class="pre-context" id="pre-13"
onclick="toggle(13);">
<li class="pre-context-line"><code> # Creates a Hash with indifferent access.
</code></li>
<li class="pre-context-line"><code> def indifferent_hash
</code></li>
<li class="pre-context-line"><code> Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Run the block with &#x27;throw :halt&#x27; support and apply result to the response.
</code></li>
<li class="pre-context-line"><code> def invoke
</code></li>
</ol>
<ol start="1035" class="context" id="13"
onclick="toggle(13);">
<li class="context-line" id="context-13"><code> res = catch(:halt) { yield }</code></li>
</ol>
<ol start="1036" class="post-context"
id="post-13" onclick="toggle(13);">
<li class="post-context-line"><code> res = [res] if Fixnum === res or String === res
</code></li>
<li class="post-context-line"><code> if Array === res and Fixnum === res.first
</code></li>
<li class="post-context-line"><code> res = res.dup
</code></li>
<li class="post-context-line"><code> status(res.shift)
</code></li>
<li class="post-context-line"><code> body(res.pop)
</code></li>
<li class="post-context-line"><code> headers(*res)
</code></li>
<li class="post-context-line"><code> elsif res.respond_to? :each
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>catch</strong></code>
</li>
<li class="code framework">
<ol start="1028"
class="pre-context" id="pre-14"
onclick="toggle(14);">
<li class="pre-context-line"><code> # Creates a Hash with indifferent access.
</code></li>
<li class="pre-context-line"><code> def indifferent_hash
</code></li>
<li class="pre-context-line"><code> Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Run the block with &#x27;throw :halt&#x27; support and apply result to the response.
</code></li>
<li class="pre-context-line"><code> def invoke
</code></li>
</ol>
<ol start="1035" class="context" id="14"
onclick="toggle(14);">
<li class="context-line" id="context-14"><code> res = catch(:halt) { yield }</code></li>
</ol>
<ol start="1036" class="post-context"
id="post-14" onclick="toggle(14);">
<li class="post-context-line"><code> res = [res] if Fixnum === res or String === res
</code></li>
<li class="post-context-line"><code> if Array === res and Fixnum === res.first
</code></li>
<li class="post-context-line"><code> res = res.dup
</code></li>
<li class="post-context-line"><code> status(res.shift)
</code></li>
<li class="post-context-line"><code> body(res.pop)
</code></li>
<li class="post-context-line"><code> headers(*res)
</code></li>
<li class="post-context-line"><code> elsif res.respond_to? :each
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>invoke</strong></code>
</li>
<li class="code framework">
<ol start="1028"
class="pre-context" id="pre-15"
onclick="toggle(15);">
<li class="pre-context-line"><code> # Creates a Hash with indifferent access.
</code></li>
<li class="pre-context-line"><code> def indifferent_hash
</code></li>
<li class="pre-context-line"><code> Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Run the block with &#x27;throw :halt&#x27; support and apply result to the response.
</code></li>
<li class="pre-context-line"><code> def invoke
</code></li>
</ol>
<ol start="1035" class="context" id="15"
onclick="toggle(15);">
<li class="context-line" id="context-15"><code> res = catch(:halt) { yield }</code></li>
</ol>
<ol start="1036" class="post-context"
id="post-15" onclick="toggle(15);">
<li class="post-context-line"><code> res = [res] if Fixnum === res or String === res
</code></li>
<li class="post-context-line"><code> if Array === res and Fixnum === res.first
</code></li>
<li class="post-context-line"><code> res = res.dup
</code></li>
<li class="post-context-line"><code> status(res.shift)
</code></li>
<li class="post-context-line"><code> body(res.pop)
</code></li>
<li class="post-context-line"><code> headers(*res)
</code></li>
<li class="post-context-line"><code> elsif res.respond_to? :each
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>call!</strong></code>
</li>
<li class="code framework">
<ol start="871"
class="pre-context" id="pre-16"
onclick="toggle(16);">
<li class="pre-context-line"><code> @request = Request.new(env)
</code></li>
<li class="pre-context-line"><code> @response = Response.new
</code></li>
<li class="pre-context-line"><code> @params = indifferent_params(@request.params)
</code></li>
<li class="pre-context-line"><code> template_cache.clear if settings.reload_templates
</code></li>
<li class="pre-context-line"><code> force_encoding(@params)
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> @response[&#x27;Content-Type&#x27;] = nil
</code></li>
</ol>
<ol start="878" class="context" id="16"
onclick="toggle(16);">
<li class="context-line" id="context-16"><code> invoke { dispatch! }</code></li>
</ol>
<ol start="879" class="post-context"
id="post-16" onclick="toggle(16);">
<li class="post-context-line"><code> invoke { error_block!(response.status) } unless @env[&#x27;sinatra.error&#x27;]
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> unless @response[&#x27;Content-Type&#x27;]
</code></li>
<li class="post-context-line"><code> if Array === body and body[0].respond_to? :content_type
</code></li>
<li class="post-context-line"><code> content_type body[0].content_type
</code></li>
<li class="post-context-line"><code> else
</code></li>
<li class="post-context-line"><code> content_type :html
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code framework">
<ol start="857"
class="pre-context" id="pre-17"
onclick="toggle(17);">
<li class="pre-context-line"><code> @app = app
</code></li>
<li class="pre-context-line"><code> @template_cache = Tilt::Cache.new
</code></li>
<li class="pre-context-line"><code> yield self if block_given?
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Rack call interface.
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="864" class="context" id="17"
onclick="toggle(17);">
<li class="context-line" id="context-17"><code> dup.call!(env)</code></li>
</ol>
<ol start="865" class="post-context"
id="post-17" onclick="toggle(17);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> attr_accessor :env, :request, :response, :params
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def call!(env) # :nodoc:
</code></li>
<li class="post-context-line"><code> @env = env
</code></li>
<li class="post-context-line"><code> @request = Request.new(env)
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-protection-1.5.0&#x2F;lib&#x2F;rack&#x2F;protection&#x2F;xss_header.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="11"
class="pre-context" id="pre-18"
onclick="toggle(18);">
<li class="pre-context-line"><code> #
</code></li>
<li class="pre-context-line"><code> # Options:
</code></li>
<li class="pre-context-line"><code> # xss_mode:: How the browser should prevent the attack (default: :block)
</code></li>
<li class="pre-context-line"><code> class XSSHeader &lt; Base
</code></li>
<li class="pre-context-line"><code> default_options :xss_mode =&gt; :block, :nosniff =&gt; true
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="18" class="context" id="18"
onclick="toggle(18);">
<li class="context-line" id="context-18"><code> status, headers, body = @app.call(env)</code></li>
</ol>
<ol start="19" class="post-context"
id="post-18" onclick="toggle(18);">
<li class="post-context-line"><code> headers[&#x27;X-XSS-Protection&#x27;] ||= &quot;1; mode=#{options[:xss_mode]}&quot; if html? headers
</code></li>
<li class="post-context-line"><code> headers[&#x27;X-Content-Type-Options&#x27;] ||= &#x27;nosniff&#x27; if options[:nosniff]
</code></li>
<li class="post-context-line"><code> [status, headers, body]
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-protection-1.5.0&#x2F;lib&#x2F;rack&#x2F;protection&#x2F;path_traversal.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="9"
class="pre-context" id="pre-19"
onclick="toggle(19);">
<li class="pre-context-line"><code> #
</code></li>
<li class="pre-context-line"><code> # Unescapes &#x27;&#x2F;&#x27; and &#x27;.&#x27;, expands +path_info+.
</code></li>
<li class="pre-context-line"><code> # Thus &lt;tt&gt;GET &#x2F;foo&#x2F;%2e%2e%2fbar&lt;&#x2F;tt&gt; becomes &lt;tt&gt;GET &#x2F;bar&lt;&#x2F;tt&gt;.
</code></li>
<li class="pre-context-line"><code> class PathTraversal &lt; Base
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
<li class="pre-context-line"><code> path_was = env[&quot;PATH_INFO&quot;]
</code></li>
<li class="pre-context-line"><code> env[&quot;PATH_INFO&quot;] = cleanup path_was if path_was &amp;&amp; !path_was.empty?
</code></li>
</ol>
<ol start="16" class="context" id="19"
onclick="toggle(19);">
<li class="context-line" id="context-19"><code> app.call env</code></li>
</ol>
<ol start="17" class="post-context"
id="post-19" onclick="toggle(19);">
<li class="post-context-line"><code> ensure
</code></li>
<li class="post-context-line"><code> env[&quot;PATH_INFO&quot;] = path_was
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def cleanup(path)
</code></li>
<li class="post-context-line"><code> parts = []
</code></li>
<li class="post-context-line"><code> unescaped = path.gsub(&#x27;%2e&#x27;, &#x27;.&#x27;).gsub(&#x27;%2f&#x27;, &#x27;&#x2F;&#x27;)
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-protection-1.5.0&#x2F;lib&#x2F;rack&#x2F;protection&#x2F;json_csrf.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="11"
class="pre-context" id="pre-20"
onclick="toggle(20);">
<li class="pre-context-line"><code> # Array prototype has been patched to track data. Checks the referrer
</code></li>
<li class="pre-context-line"><code> # even on GET requests if the content type is JSON.
</code></li>
<li class="pre-context-line"><code> class JsonCsrf &lt; Base
</code></li>
<li class="pre-context-line"><code> default_reaction :deny
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
<li class="pre-context-line"><code> request = Request.new(env)
</code></li>
</ol>
<ol start="18" class="context" id="20"
onclick="toggle(20);">
<li class="context-line" id="context-20"><code> status, headers, body = app.call(env)</code></li>
</ol>
<ol start="19" class="post-context"
id="post-20" onclick="toggle(20);">
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> if has_vector? request, headers
</code></li>
<li class="post-context-line"><code> warn env, &quot;attack prevented by #{self.class}&quot;
</code></li>
<li class="post-context-line"><code> react(env)
</code></li>
<li class="post-context-line"><code> else
</code></li>
<li class="post-context-line"><code> [status, headers, body]
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-protection-1.5.0&#x2F;lib&#x2F;rack&#x2F;protection&#x2F;base.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="42"
class="pre-context" id="pre-21"
onclick="toggle(21);">
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
<li class="pre-context-line"><code> unless accepts? env
</code></li>
<li class="pre-context-line"><code> warn env, &quot;attack prevented by #{self.class}&quot;
</code></li>
<li class="pre-context-line"><code> result = react env
</code></li>
<li class="pre-context-line"><code> end
</code></li>
</ol>
<ol start="49" class="context" id="21"
onclick="toggle(21);">
<li class="context-line" id="context-21"><code> result or app.call(env)</code></li>
</ol>
<ol start="50" class="post-context"
id="post-21" onclick="toggle(21);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def react(env)
</code></li>
<li class="post-context-line"><code> result = send(options[:reaction], env)
</code></li>
<li class="post-context-line"><code> result if Array === result and result.size == 3
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-protection-1.5.0&#x2F;lib&#x2F;rack&#x2F;protection&#x2F;base.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="42"
class="pre-context" id="pre-22"
onclick="toggle(22);">
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
<li class="pre-context-line"><code> unless accepts? env
</code></li>
<li class="pre-context-line"><code> warn env, &quot;attack prevented by #{self.class}&quot;
</code></li>
<li class="pre-context-line"><code> result = react env
</code></li>
<li class="pre-context-line"><code> end
</code></li>
</ol>
<ol start="49" class="context" id="22"
onclick="toggle(22);">
<li class="context-line" id="context-22"><code> result or app.call(env)</code></li>
</ol>
<ol start="50" class="post-context"
id="post-22" onclick="toggle(22);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def react(env)
</code></li>
<li class="post-context-line"><code> result = send(options[:reaction], env)
</code></li>
<li class="post-context-line"><code> result if Array === result and result.size == 3
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-protection-1.5.0&#x2F;lib&#x2F;rack&#x2F;protection&#x2F;frame_options.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="24"
class="pre-context" id="pre-23"
onclick="toggle(23);">
<li class="pre-context-line"><code> frame_options = options[:frame_options]
</code></li>
<li class="pre-context-line"><code> frame_options = options[:frame_options].to_s.upcase unless frame_options.respond_to? :to_str
</code></li>
<li class="pre-context-line"><code> frame_options.to_str
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="31" class="context" id="23"
onclick="toggle(23);">
<li class="context-line" id="context-23"><code> status, headers, body = @app.call(env)</code></li>
</ol>
<ol start="32" class="post-context"
id="post-23" onclick="toggle(23);">
<li class="post-context-line"><code> headers[&#x27;X-Frame-Options&#x27;] ||= frame_options if html? headers
</code></li>
<li class="post-context-line"><code> [status, headers, body]
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-1.5.2&#x2F;lib&#x2F;rack&#x2F;nulllogger.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="2"
class="pre-context" id="pre-24"
onclick="toggle(24);">
<li class="pre-context-line"><code> class NullLogger
</code></li>
<li class="pre-context-line"><code> def initialize(app)
</code></li>
<li class="pre-context-line"><code> @app = app
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
<li class="pre-context-line"><code> env[&#x27;rack.logger&#x27;] = self
</code></li>
</ol>
<ol start="9" class="context" id="24"
onclick="toggle(24);">
<li class="context-line" id="context-24"><code> @app.call(env)</code></li>
</ol>
<ol start="10" class="post-context"
id="post-24" onclick="toggle(24);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def info(progname = nil, &amp;block); end
</code></li>
<li class="post-context-line"><code> def debug(progname = nil, &amp;block); end
</code></li>
<li class="post-context-line"><code> def warn(progname = nil, &amp;block); end
</code></li>
<li class="post-context-line"><code> def error(progname = nil, &amp;block); end
</code></li>
<li class="post-context-line"><code> def fatal(progname = nil, &amp;block); end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-1.5.2&#x2F;lib&#x2F;rack&#x2F;head.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="4"
class="pre-context" id="pre-25"
onclick="toggle(25);">
<li class="pre-context-line"><code> # Rack::Head returns an empty body for all HEAD requests. It leaves
</code></li>
<li class="pre-context-line"><code> # all other requests unchanged.
</code></li>
<li class="pre-context-line"><code> def initialize(app)
</code></li>
<li class="pre-context-line"><code> @app = app
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="11" class="context" id="25"
onclick="toggle(25);">
<li class="context-line" id="context-25"><code> status, headers, body = @app.call(env)</code></li>
</ol>
<ol start="12" class="post-context"
id="post-25" onclick="toggle(25);">
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> if env[&quot;REQUEST_METHOD&quot;] == &quot;HEAD&quot;
</code></li>
<li class="post-context-line"><code> body.close if body.respond_to? :close
</code></li>
<li class="post-context-line"><code> [status, headers, []]
</code></li>
<li class="post-context-line"><code> else
</code></li>
<li class="post-context-line"><code> [status, headers, body]
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;showexceptions.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code framework">
<ol start="14"
class="pre-context" id="pre-26"
onclick="toggle(26);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def initialize(app)
</code></li>
<li class="pre-context-line"><code> @app = app
</code></li>
<li class="pre-context-line"><code> @template = ERB.new(TEMPLATE)
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="21" class="context" id="26"
onclick="toggle(26);">
<li class="context-line" id="context-26"><code> @app.call(env)</code></li>
</ol>
<ol start="22" class="post-context"
id="post-26" onclick="toggle(26);">
<li class="post-context-line"><code> rescue Exception =&gt; e
</code></li>
<li class="post-context-line"><code> errors, env[&quot;rack.errors&quot;] = env[&quot;rack.errors&quot;], @@eats_errors
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> if prefers_plain_text?(env)
</code></li>
<li class="post-context-line"><code> content_type = &quot;text&#x2F;plain&quot;
</code></li>
<li class="post-context-line"><code> body = [dump_exception(e)]
</code></li>
<li class="post-context-line"><code> else
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code framework">
<ol start="165"
class="pre-context" id="pre-27"
onclick="toggle(27);">
<li class="pre-context-line"><code> # Some Rack handlers (Thin, Rainbows!) implement an extended body object protocol, however,
</code></li>
<li class="pre-context-line"><code> # some middleware (namely Rack::Lint) will break it by not mirroring the methods in question.
</code></li>
<li class="pre-context-line"><code> # This middleware will detect an extended body object and will make sure it reaches the
</code></li>
<li class="pre-context-line"><code> # handler directly. We do this here, so our middleware and middleware set up by the app will
</code></li>
<li class="pre-context-line"><code> # still be able to run.
</code></li>
<li class="pre-context-line"><code> class ExtendedRack &lt; Struct.new(:app)
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="172" class="context" id="27"
onclick="toggle(27);">
<li class="context-line" id="context-27"><code> result, callback = app.call(env), env[&#x27;async.callback&#x27;]</code></li>
</ol>
<ol start="173" class="post-context"
id="post-27" onclick="toggle(27);">
<li class="post-context-line"><code> return result unless callback and async?(*result)
</code></li>
<li class="post-context-line"><code> after_response { callback.call result }
</code></li>
<li class="post-context-line"><code> setup_close(env, *result)
</code></li>
<li class="post-context-line"><code> throw :async
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> private
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code framework">
<ol start="1940"
class="pre-context" id="pre-28"
onclick="toggle(28);">
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def helpers
</code></li>
<li class="pre-context-line"><code> @instance
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="1947" class="context" id="28"
onclick="toggle(28);">
<li class="context-line" id="context-28"><code> @stack.call(env)</code></li>
</ol>
<ol start="1948" class="post-context"
id="post-28" onclick="toggle(28);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def inspect
</code></li>
<li class="post-context-line"><code> &quot;#&lt;#{@instance.class} app_file=#{settings.app_file.inspect}&gt;&quot;
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-protection-1.5.0&#x2F;lib&#x2F;rack&#x2F;protection&#x2F;xss_header.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="11"
class="pre-context" id="pre-29"
onclick="toggle(29);">
<li class="pre-context-line"><code> #
</code></li>
<li class="pre-context-line"><code> # Options:
</code></li>
<li class="pre-context-line"><code> # xss_mode:: How the browser should prevent the attack (default: :block)
</code></li>
<li class="pre-context-line"><code> class XSSHeader &lt; Base
</code></li>
<li class="pre-context-line"><code> default_options :xss_mode =&gt; :block, :nosniff =&gt; true
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="18" class="context" id="29"
onclick="toggle(29);">
<li class="context-line" id="context-29"><code> status, headers, body = @app.call(env)</code></li>
</ol>
<ol start="19" class="post-context"
id="post-29" onclick="toggle(29);">
<li class="post-context-line"><code> headers[&#x27;X-XSS-Protection&#x27;] ||= &quot;1; mode=#{options[:xss_mode]}&quot; if html? headers
</code></li>
<li class="post-context-line"><code> headers[&#x27;X-Content-Type-Options&#x27;] ||= &#x27;nosniff&#x27; if options[:nosniff]
</code></li>
<li class="post-context-line"><code> [status, headers, body]
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-protection-1.5.0&#x2F;lib&#x2F;rack&#x2F;protection&#x2F;path_traversal.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="9"
class="pre-context" id="pre-30"
onclick="toggle(30);">
<li class="pre-context-line"><code> #
</code></li>
<li class="pre-context-line"><code> # Unescapes &#x27;&#x2F;&#x27; and &#x27;.&#x27;, expands +path_info+.
</code></li>
<li class="pre-context-line"><code> # Thus &lt;tt&gt;GET &#x2F;foo&#x2F;%2e%2e%2fbar&lt;&#x2F;tt&gt; becomes &lt;tt&gt;GET &#x2F;bar&lt;&#x2F;tt&gt;.
</code></li>
<li class="pre-context-line"><code> class PathTraversal &lt; Base
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
<li class="pre-context-line"><code> path_was = env[&quot;PATH_INFO&quot;]
</code></li>
<li class="pre-context-line"><code> env[&quot;PATH_INFO&quot;] = cleanup path_was if path_was &amp;&amp; !path_was.empty?
</code></li>
</ol>
<ol start="16" class="context" id="30"
onclick="toggle(30);">
<li class="context-line" id="context-30"><code> app.call env</code></li>
</ol>
<ol start="17" class="post-context"
id="post-30" onclick="toggle(30);">
<li class="post-context-line"><code> ensure
</code></li>
<li class="post-context-line"><code> env[&quot;PATH_INFO&quot;] = path_was
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def cleanup(path)
</code></li>
<li class="post-context-line"><code> parts = []
</code></li>
<li class="post-context-line"><code> unescaped = path.gsub(&#x27;%2e&#x27;, &#x27;.&#x27;).gsub(&#x27;%2f&#x27;, &#x27;&#x2F;&#x27;)
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-protection-1.5.0&#x2F;lib&#x2F;rack&#x2F;protection&#x2F;json_csrf.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="11"
class="pre-context" id="pre-31"
onclick="toggle(31);">
<li class="pre-context-line"><code> # Array prototype has been patched to track data. Checks the referrer
</code></li>
<li class="pre-context-line"><code> # even on GET requests if the content type is JSON.
</code></li>
<li class="pre-context-line"><code> class JsonCsrf &lt; Base
</code></li>
<li class="pre-context-line"><code> default_reaction :deny
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
<li class="pre-context-line"><code> request = Request.new(env)
</code></li>
</ol>
<ol start="18" class="context" id="31"
onclick="toggle(31);">
<li class="context-line" id="context-31"><code> status, headers, body = app.call(env)</code></li>
</ol>
<ol start="19" class="post-context"
id="post-31" onclick="toggle(31);">
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> if has_vector? request, headers
</code></li>
<li class="post-context-line"><code> warn env, &quot;attack prevented by #{self.class}&quot;
</code></li>
<li class="post-context-line"><code> react(env)
</code></li>
<li class="post-context-line"><code> else
</code></li>
<li class="post-context-line"><code> [status, headers, body]
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-protection-1.5.0&#x2F;lib&#x2F;rack&#x2F;protection&#x2F;base.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="42"
class="pre-context" id="pre-32"
onclick="toggle(32);">
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
<li class="pre-context-line"><code> unless accepts? env
</code></li>
<li class="pre-context-line"><code> warn env, &quot;attack prevented by #{self.class}&quot;
</code></li>
<li class="pre-context-line"><code> result = react env
</code></li>
<li class="pre-context-line"><code> end
</code></li>
</ol>
<ol start="49" class="context" id="32"
onclick="toggle(32);">
<li class="context-line" id="context-32"><code> result or app.call(env)</code></li>
</ol>
<ol start="50" class="post-context"
id="post-32" onclick="toggle(32);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def react(env)
</code></li>
<li class="post-context-line"><code> result = send(options[:reaction], env)
</code></li>
<li class="post-context-line"><code> result if Array === result and result.size == 3
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-protection-1.5.0&#x2F;lib&#x2F;rack&#x2F;protection&#x2F;base.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="42"
class="pre-context" id="pre-33"
onclick="toggle(33);">
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
<li class="pre-context-line"><code> unless accepts? env
</code></li>
<li class="pre-context-line"><code> warn env, &quot;attack prevented by #{self.class}&quot;
</code></li>
<li class="pre-context-line"><code> result = react env
</code></li>
<li class="pre-context-line"><code> end
</code></li>
</ol>
<ol start="49" class="context" id="33"
onclick="toggle(33);">
<li class="context-line" id="context-33"><code> result or app.call(env)</code></li>
</ol>
<ol start="50" class="post-context"
id="post-33" onclick="toggle(33);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def react(env)
</code></li>
<li class="post-context-line"><code> result = send(options[:reaction], env)
</code></li>
<li class="post-context-line"><code> result if Array === result and result.size == 3
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-protection-1.5.0&#x2F;lib&#x2F;rack&#x2F;protection&#x2F;frame_options.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="24"
class="pre-context" id="pre-34"
onclick="toggle(34);">
<li class="pre-context-line"><code> frame_options = options[:frame_options]
</code></li>
<li class="pre-context-line"><code> frame_options = options[:frame_options].to_s.upcase unless frame_options.respond_to? :to_str
</code></li>
<li class="pre-context-line"><code> frame_options.to_str
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="31" class="context" id="34"
onclick="toggle(34);">
<li class="context-line" id="context-34"><code> status, headers, body = @app.call(env)</code></li>
</ol>
<ol start="32" class="post-context"
id="post-34" onclick="toggle(34);">
<li class="post-context-line"><code> headers[&#x27;X-Frame-Options&#x27;] ||= frame_options if html? headers
</code></li>
<li class="post-context-line"><code> [status, headers, body]
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-1.5.2&#x2F;lib&#x2F;rack&#x2F;nulllogger.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="2"
class="pre-context" id="pre-35"
onclick="toggle(35);">
<li class="pre-context-line"><code> class NullLogger
</code></li>
<li class="pre-context-line"><code> def initialize(app)
</code></li>
<li class="pre-context-line"><code> @app = app
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
<li class="pre-context-line"><code> env[&#x27;rack.logger&#x27;] = self
</code></li>
</ol>
<ol start="9" class="context" id="35"
onclick="toggle(35);">
<li class="context-line" id="context-35"><code> @app.call(env)</code></li>
</ol>
<ol start="10" class="post-context"
id="post-35" onclick="toggle(35);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def info(progname = nil, &amp;block); end
</code></li>
<li class="post-context-line"><code> def debug(progname = nil, &amp;block); end
</code></li>
<li class="post-context-line"><code> def warn(progname = nil, &amp;block); end
</code></li>
<li class="post-context-line"><code> def error(progname = nil, &amp;block); end
</code></li>
<li class="post-context-line"><code> def fatal(progname = nil, &amp;block); end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-1.5.2&#x2F;lib&#x2F;rack&#x2F;head.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="4"
class="pre-context" id="pre-36"
onclick="toggle(36);">
<li class="pre-context-line"><code> # Rack::Head returns an empty body for all HEAD requests. It leaves
</code></li>
<li class="pre-context-line"><code> # all other requests unchanged.
</code></li>
<li class="pre-context-line"><code> def initialize(app)
</code></li>
<li class="pre-context-line"><code> @app = app
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="11" class="context" id="36"
onclick="toggle(36);">
<li class="context-line" id="context-36"><code> status, headers, body = @app.call(env)</code></li>
</ol>
<ol start="12" class="post-context"
id="post-36" onclick="toggle(36);">
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> if env[&quot;REQUEST_METHOD&quot;] == &quot;HEAD&quot;
</code></li>
<li class="post-context-line"><code> body.close if body.respond_to? :close
</code></li>
<li class="post-context-line"><code> [status, headers, []]
</code></li>
<li class="post-context-line"><code> else
</code></li>
<li class="post-context-line"><code> [status, headers, body]
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-1.5.2&#x2F;lib&#x2F;rack&#x2F;methodoverride.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="14"
class="pre-context" id="pre-37"
onclick="toggle(37);">
<li class="pre-context-line"><code> method = method_override(env)
</code></li>
<li class="pre-context-line"><code> if HTTP_METHODS.include?(method)
</code></li>
<li class="pre-context-line"><code> env[&quot;rack.methodoverride.original_method&quot;] = env[&quot;REQUEST_METHOD&quot;]
</code></li>
<li class="pre-context-line"><code> env[&quot;REQUEST_METHOD&quot;] = method
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
</ol>
<ol start="21" class="context" id="37"
onclick="toggle(37);">
<li class="context-line" id="context-37"><code> @app.call(env)</code></li>
</ol>
<ol start="22" class="post-context"
id="post-37" onclick="toggle(37);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def method_override(env)
</code></li>
<li class="post-context-line"><code> req = Request.new(env)
</code></li>
<li class="post-context-line"><code> method = req.POST[METHOD_OVERRIDE_PARAM_KEY] ||
</code></li>
<li class="post-context-line"><code> env[HTTP_METHOD_OVERRIDE_HEADER]
</code></li>
<li class="post-context-line"><code> method.to_s.upcase
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;showexceptions.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code framework">
<ol start="14"
class="pre-context" id="pre-38"
onclick="toggle(38);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def initialize(app)
</code></li>
<li class="pre-context-line"><code> @app = app
</code></li>
<li class="pre-context-line"><code> @template = ERB.new(TEMPLATE)
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="21" class="context" id="38"
onclick="toggle(38);">
<li class="context-line" id="context-38"><code> @app.call(env)</code></li>
</ol>
<ol start="22" class="post-context"
id="post-38" onclick="toggle(38);">
<li class="post-context-line"><code> rescue Exception =&gt; e
</code></li>
<li class="post-context-line"><code> errors, env[&quot;rack.errors&quot;] = env[&quot;rack.errors&quot;], @@eats_errors
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> if prefers_plain_text?(env)
</code></li>
<li class="post-context-line"><code> content_type = &quot;text&#x2F;plain&quot;
</code></li>
<li class="post-context-line"><code> body = [dump_exception(e)]
</code></li>
<li class="post-context-line"><code> else
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code framework">
<ol start="165"
class="pre-context" id="pre-39"
onclick="toggle(39);">
<li class="pre-context-line"><code> # Some Rack handlers (Thin, Rainbows!) implement an extended body object protocol, however,
</code></li>
<li class="pre-context-line"><code> # some middleware (namely Rack::Lint) will break it by not mirroring the methods in question.
</code></li>
<li class="pre-context-line"><code> # This middleware will detect an extended body object and will make sure it reaches the
</code></li>
<li class="pre-context-line"><code> # handler directly. We do this here, so our middleware and middleware set up by the app will
</code></li>
<li class="pre-context-line"><code> # still be able to run.
</code></li>
<li class="pre-context-line"><code> class ExtendedRack &lt; Struct.new(:app)
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="172" class="context" id="39"
onclick="toggle(39);">
<li class="context-line" id="context-39"><code> result, callback = app.call(env), env[&#x27;async.callback&#x27;]</code></li>
</ol>
<ol start="173" class="post-context"
id="post-39" onclick="toggle(39);">
<li class="post-context-line"><code> return result unless callback and async?(*result)
</code></li>
<li class="post-context-line"><code> after_response { callback.call result }
</code></li>
<li class="post-context-line"><code> setup_close(env, *result)
</code></li>
<li class="post-context-line"><code> throw :async
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> private
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code framework">
<ol start="1940"
class="pre-context" id="pre-40"
onclick="toggle(40);">
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def helpers
</code></li>
<li class="pre-context-line"><code> @instance
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="1947" class="context" id="40"
onclick="toggle(40);">
<li class="context-line" id="context-40"><code> @stack.call(env)</code></li>
</ol>
<ol start="1948" class="post-context"
id="post-40" onclick="toggle(40);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def inspect
</code></li>
<li class="post-context-line"><code> &quot;#&lt;#{@instance.class} app_file=#{settings.app_file.inspect}&gt;&quot;
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>block in call</strong></code>
</li>
<li class="code framework">
<ol start="1603"
class="pre-context" id="pre-41"
onclick="toggle(41);">
<li class="pre-context-line"><code> setup_default_middleware builder
</code></li>
<li class="pre-context-line"><code> setup_middleware builder
</code></li>
<li class="pre-context-line"><code> builder.run app
</code></li>
<li class="pre-context-line"><code> builder
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="1610" class="context" id="41"
onclick="toggle(41);">
<li class="context-line" id="context-41"><code> synchronize { prototype.call(env) }</code></li>
</ol>
<ol start="1611" class="post-context"
id="post-41" onclick="toggle(41);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> private
</code></li>
<li class="post-context-line"><code> def setup_default_middleware(builder)
</code></li>
<li class="post-context-line"><code> builder.use ExtendedRack
</code></li>
<li class="post-context-line"><code> builder.use ShowExceptions if show_exceptions?
</code></li>
<li class="post-context-line"><code> builder.use Rack::MethodOverride if method_override?
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>synchronize</strong></code>
</li>
<li class="code framework">
<ol start="1686"
class="pre-context" id="pre-42"
onclick="toggle(42);">
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> @@mutex = Mutex.new
</code></li>
<li class="pre-context-line"><code> def synchronize(&amp;block)
</code></li>
<li class="pre-context-line"><code> if lock?
</code></li>
<li class="pre-context-line"><code> @@mutex.synchronize(&amp;block)
</code></li>
<li class="pre-context-line"><code> else
</code></li>
</ol>
<ol start="1693" class="context" id="42"
onclick="toggle(42);">
<li class="context-line" id="context-42"><code> yield</code></li>
</ol>
<ol start="1694" class="post-context"
id="post-42" onclick="toggle(42);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> public
</code></li>
<li class="post-context-line"><code> CALLERS_TO_IGNORE = [ # :nodoc:
</code></li>
<li class="post-context-line"><code> &#x2F;\&#x2F;sinatra(\&#x2F;(base|main|showexceptions))?\.rb$&#x2F;, # all sinatra code
</code></li>
<li class="post-context-line"><code> &#x2F;lib\&#x2F;tilt.*\.rb$&#x2F;, # all tilt code
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code framework">
<ol start="1603"
class="pre-context" id="pre-43"
onclick="toggle(43);">
<li class="pre-context-line"><code> setup_default_middleware builder
</code></li>
<li class="pre-context-line"><code> setup_middleware builder
</code></li>
<li class="pre-context-line"><code> builder.run app
</code></li>
<li class="pre-context-line"><code> builder
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="1610" class="context" id="43"
onclick="toggle(43);">
<li class="context-line" id="context-43"><code> synchronize { prototype.call(env) }</code></li>
</ol>
<ol start="1611" class="post-context"
id="post-43" onclick="toggle(43);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> private
</code></li>
<li class="post-context-line"><code> def setup_default_middleware(builder)
</code></li>
<li class="post-context-line"><code> builder.use ExtendedRack
</code></li>
<li class="post-context-line"><code> builder.use ShowExceptions if show_exceptions?
</code></li>
<li class="post-context-line"><code> builder.use Rack::MethodOverride if method_override?
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-1.5.2&#x2F;lib&#x2F;rack&#x2F;lint.rb</code> in
<code><strong>_call</strong></code>
</li>
<li class="code system">
<ol start="42"
class="pre-context" id="pre-44"
onclick="toggle(44);">
<li class="pre-context-line"><code> assert(&quot;No env given&quot;) { env }
</code></li>
<li class="pre-context-line"><code> check_env env
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> env[&#x27;rack.input&#x27;] = InputWrapper.new(env[&#x27;rack.input&#x27;])
</code></li>
<li class="pre-context-line"><code> env[&#x27;rack.errors&#x27;] = ErrorWrapper.new(env[&#x27;rack.errors&#x27;])
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> ## and returns an Array of exactly three values:
</code></li>
</ol>
<ol start="49" class="context" id="44"
onclick="toggle(44);">
<li class="context-line" id="context-44"><code> status, headers, @body = @app.call(env)</code></li>
</ol>
<ol start="50" class="post-context"
id="post-44" onclick="toggle(44);">
<li class="post-context-line"><code> ## The *status*,
</code></li>
<li class="post-context-line"><code> check_status status
</code></li>
<li class="post-context-line"><code> ## the *headers*,
</code></li>
<li class="post-context-line"><code> check_headers headers
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> check_hijack_response headers, env
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-1.5.2&#x2F;lib&#x2F;rack&#x2F;lint.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="30"
class="pre-context" id="pre-45"
onclick="toggle(45);">
<li class="pre-context-line"><code> ## after to catch all mistakes.
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> ## = Rack applications
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> ## A Rack application is a Ruby object (not a class) that
</code></li>
<li class="pre-context-line"><code> ## responds to +call+.
</code></li>
<li class="pre-context-line"><code> def call(env=nil)
</code></li>
</ol>
<ol start="37" class="context" id="45"
onclick="toggle(45);">
<li class="context-line" id="context-45"><code> dup._call(env)</code></li>
</ol>
<ol start="38" class="post-context"
id="post-45" onclick="toggle(45);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def _call(env)
</code></li>
<li class="post-context-line"><code> ## It takes exactly one argument, the *environment*
</code></li>
<li class="post-context-line"><code> assert(&quot;No env given&quot;) { env }
</code></li>
<li class="post-context-line"><code> check_env env
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-1.5.2&#x2F;lib&#x2F;rack&#x2F;showexceptions.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="17"
class="pre-context" id="pre-46"
onclick="toggle(46);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def initialize(app)
</code></li>
<li class="pre-context-line"><code> @app = app
</code></li>
<li class="pre-context-line"><code> @template = ERB.new(TEMPLATE)
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="24" class="context" id="46"
onclick="toggle(46);">
<li class="context-line" id="context-46"><code> @app.call(env)</code></li>
</ol>
<ol start="25" class="post-context"
id="post-46" onclick="toggle(46);">
<li class="post-context-line"><code> rescue StandardError, LoadError, SyntaxError =&gt; e
</code></li>
<li class="post-context-line"><code> exception_string = dump_exception(e)
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> env[&quot;rack.errors&quot;].puts(exception_string)
</code></li>
<li class="post-context-line"><code> env[&quot;rack.errors&quot;].flush
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> if prefers_plain_text?(env)
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-1.5.2&#x2F;lib&#x2F;rack&#x2F;commonlogger.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="26"
class="pre-context" id="pre-47"
onclick="toggle(47);">
<li class="pre-context-line"><code> def initialize(app, logger=nil)
</code></li>
<li class="pre-context-line"><code> @app = app
</code></li>
<li class="pre-context-line"><code> @logger = logger
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
<li class="pre-context-line"><code> began_at = Time.now
</code></li>
</ol>
<ol start="33" class="context" id="47"
onclick="toggle(47);">
<li class="context-line" id="context-47"><code> status, header, body = @app.call(env)</code></li>
</ol>
<ol start="34" class="post-context"
id="post-47" onclick="toggle(47);">
<li class="post-context-line"><code> header = Utils::HeaderHash.new(header)
</code></li>
<li class="post-context-line"><code> body = BodyProxy.new(body) { log(env, status, header, began_at) }
</code></li>
<li class="post-context-line"><code> [status, header, body]
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> private
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;sinatra-1.4.2&#x2F;lib&#x2F;sinatra&#x2F;base.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code framework">
<ol start="202"
class="pre-context" id="pre-48"
onclick="toggle(48);">
<li class="pre-context-line"><code> env[&#x27;sinatra.commonlogger&#x27;] ? @app.call(env) : super
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> superclass.class_eval do
</code></li>
<li class="pre-context-line"><code> alias call_without_check call unless method_defined? :call_without_check
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
<li class="pre-context-line"><code> env[&#x27;sinatra.commonlogger&#x27;] = true
</code></li>
</ol>
<ol start="209" class="context" id="48"
onclick="toggle(48);">
<li class="context-line" id="context-48"><code> call_without_check(env)</code></li>
</ol>
<ol start="210" class="post-context"
id="post-48" onclick="toggle(48);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> class NotFound &lt; NameError #:nodoc:
</code></li>
<li class="post-context-line"><code> def http_status; 404 end
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-1.5.2&#x2F;lib&#x2F;rack&#x2F;chunked.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="36"
class="pre-context" id="pre-49"
onclick="toggle(49);">
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def initialize(app)
</code></li>
<li class="pre-context-line"><code> @app = app
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="43" class="context" id="49"
onclick="toggle(49);">
<li class="context-line" id="context-49"><code> status, headers, body = @app.call(env)</code></li>
</ol>
<ol start="44" class="post-context"
id="post-49" onclick="toggle(49);">
<li class="post-context-line"><code> headers = HeaderHash.new(headers)
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> if env[&#x27;HTTP_VERSION&#x27;] == &#x27;HTTP&#x2F;1.0&#x27; ||
</code></li>
<li class="post-context-line"><code> STATUS_WITH_NO_ENTITY_BODY.include?(status) ||
</code></li>
<li class="post-context-line"><code> headers[&#x27;Content-Length&#x27;] ||
</code></li>
<li class="post-context-line"><code> headers[&#x27;Transfer-Encoding&#x27;]
</code></li>
<li class="post-context-line"><code> [status, headers, body]
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-1.5.2&#x2F;lib&#x2F;rack&#x2F;content_length.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="7"
class="pre-context" id="pre-50"
onclick="toggle(50);">
<li class="pre-context-line"><code> include Rack::Utils
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def initialize(app)
</code></li>
<li class="pre-context-line"><code> @app = app
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="14" class="context" id="50"
onclick="toggle(50);">
<li class="context-line" id="context-50"><code> status, headers, body = @app.call(env)</code></li>
</ol>
<ol start="15" class="post-context"
id="post-50" onclick="toggle(50);">
<li class="post-context-line"><code> headers = HeaderHash.new(headers)
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> if !STATUS_WITH_NO_ENTITY_BODY.include?(status.to_i) &amp;&amp;
</code></li>
<li class="post-context-line"><code> !headers[&#x27;Content-Length&#x27;] &amp;&amp;
</code></li>
<li class="post-context-line"><code> !headers[&#x27;Transfer-Encoding&#x27;] &amp;&amp;
</code></li>
<li class="post-context-line"><code> body.respond_to?(:to_ary)
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;gems&#x2F;ruby-1.9.3-p392&#x2F;gems&#x2F;rack-1.5.2&#x2F;lib&#x2F;rack&#x2F;handler&#x2F;webrick.rb</code> in
<code><strong>service</strong></code>
</li>
<li class="code system">
<ol start="53"
class="pre-context" id="pre-51"
onclick="toggle(51);">
<li class="pre-context-line"><code> env[&quot;QUERY_STRING&quot;] ||= &quot;&quot;
</code></li>
<li class="pre-context-line"><code> unless env[&quot;PATH_INFO&quot;] == &quot;&quot;
</code></li>
<li class="pre-context-line"><code> path, n = req.request_uri.path, env[&quot;SCRIPT_NAME&quot;].length
</code></li>
<li class="pre-context-line"><code> env[&quot;PATH_INFO&quot;] = path[n, path.length-n]
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code> env[&quot;REQUEST_PATH&quot;] ||= [env[&quot;SCRIPT_NAME&quot;], env[&quot;PATH_INFO&quot;]].join
</code></li>
<li class="pre-context-line"><code>
</code></li>
</ol>
<ol start="60" class="context" id="51"
onclick="toggle(51);">
<li class="context-line" id="context-51"><code> status, headers, body = @app.call(env)</code></li>
</ol>
<ol start="61" class="post-context"
id="post-51" onclick="toggle(51);">
<li class="post-context-line"><code> begin
</code></li>
<li class="post-context-line"><code> res.status = status.to_i
</code></li>
<li class="post-context-line"><code> headers.each { |k, vs|
</code></li>
<li class="post-context-line"><code> if k.downcase == &quot;set-cookie&quot;
</code></li>
<li class="post-context-line"><code> res.cookies.concat vs.split(&quot;\n&quot;)
</code></li>
<li class="post-context-line"><code> else
</code></li>
<li class="post-context-line"><code> # Since WEBrick won&#x27;t accept repeated headers,
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info app">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;rubies&#x2F;ruby-1.9.3-p392&#x2F;lib&#x2F;ruby&#x2F;1.9.1&#x2F;webrick&#x2F;httpserver.rb</code> in
<code><strong>service</strong></code>
</li>
<li class="code app">
<ol start="131"
class="pre-context" id="pre-52"
onclick="toggle(52);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> servlet, options, script_name, path_info = search_servlet(req.path)
</code></li>
<li class="pre-context-line"><code> raise HTTPStatus::NotFound, &quot;`#{req.path}&#x27; not found.&quot; unless servlet
</code></li>
<li class="pre-context-line"><code> req.script_name = script_name
</code></li>
<li class="pre-context-line"><code> req.path_info = path_info
</code></li>
<li class="pre-context-line"><code> si = servlet.get_instance(self, *options)
</code></li>
<li class="pre-context-line"><code> @logger.debug(format(&quot;%s is invoked.&quot;, si.class.name))
</code></li>
</ol>
<ol start="138" class="context" id="52"
onclick="toggle(52);">
<li class="context-line" id="context-52"><code> si.service(req, res)</code></li>
</ol>
<ol start="139" class="post-context"
id="post-52" onclick="toggle(52);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def do_OPTIONS(req, res)
</code></li>
<li class="post-context-line"><code> res[&quot;allow&quot;] = &quot;GET,HEAD,POST,OPTIONS&quot;
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> ##
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info app">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;rubies&#x2F;ruby-1.9.3-p392&#x2F;lib&#x2F;ruby&#x2F;1.9.1&#x2F;webrick&#x2F;httpserver.rb</code> in
<code><strong>run</strong></code>
</li>
<li class="code app">
<ol start="87"
class="pre-context" id="pre-53"
onclick="toggle(53);">
<li class="pre-context-line"><code> if callback = server[:RequestCallback]
</code></li>
<li class="pre-context-line"><code> callback.call(req, res)
</code></li>
<li class="pre-context-line"><code> elsif callback = server[:RequestHandler]
</code></li>
<li class="pre-context-line"><code> msg = &quot;:RequestHandler is deprecated, please use :RequestCallback&quot;
</code></li>
<li class="pre-context-line"><code> @logger.warn(msg)
</code></li>
<li class="pre-context-line"><code> callback.call(req, res)
</code></li>
<li class="pre-context-line"><code> end
</code></li>
</ol>
<ol start="94" class="context" id="53"
onclick="toggle(53);">
<li class="context-line" id="context-53"><code> server.service(req, res)</code></li>
</ol>
<ol start="95" class="post-context"
id="post-53" onclick="toggle(53);">
<li class="post-context-line"><code> rescue HTTPStatus::EOFError, HTTPStatus::RequestTimeout =&gt; ex
</code></li>
<li class="post-context-line"><code> res.set_error(ex)
</code></li>
<li class="post-context-line"><code> rescue HTTPStatus::Error =&gt; ex
</code></li>
<li class="post-context-line"><code> @logger.error(ex.message)
</code></li>
<li class="post-context-line"><code> res.set_error(ex)
</code></li>
<li class="post-context-line"><code> rescue HTTPStatus::Status =&gt; ex
</code></li>
<li class="post-context-line"><code> res.status = ex.code
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info app">
<code>&#x2F;usr&#x2F;local&#x2F;rvm&#x2F;rubies&#x2F;ruby-1.9.3-p392&#x2F;lib&#x2F;ruby&#x2F;1.9.1&#x2F;webrick&#x2F;server.rb</code> in
<code><strong>block in start_thread</strong></code>
</li>
<li class="code app">
<ol start="184"
class="pre-context" id="pre-54"
onclick="toggle(54);">
<li class="pre-context-line"><code> addr = sock.peeraddr
</code></li>
<li class="pre-context-line"><code> @logger.debug &quot;accept: #{addr[3]}:#{addr[1]}&quot;
</code></li>
<li class="pre-context-line"><code> rescue SocketError
</code></li>
<li class="pre-context-line"><code> @logger.debug &quot;accept: &lt;address unknown&gt;&quot;
</code></li>
<li class="pre-context-line"><code> raise
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code> call_callback(:AcceptCallback, sock)
</code></li>
</ol>
<ol start="191" class="context" id="54"
onclick="toggle(54);">
<li class="context-line" id="context-54"><code> block ? block.call(sock) : run(sock)</code></li>
</ol>
<ol start="192" class="post-context"
id="post-54" onclick="toggle(54);">
<li class="post-context-line"><code> rescue Errno::ENOTCONN
</code></li>
<li class="post-context-line"><code> @logger.debug &quot;Errno::ENOTCONN raised&quot;
</code></li>
<li class="post-context-line"><code> rescue ServerError =&gt; ex
</code></li>
<li class="post-context-line"><code> msg = &quot;#{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}&quot;
</code></li>
<li class="post-context-line"><code> @logger.error msg
</code></li>
<li class="post-context-line"><code> rescue Exception =&gt; ex
</code></li>
<li class="post-context-line"><code> @logger.error ex
</code></li>
</ol>
<div class="clear"></div>
</li>
</ul>
</div> <!-- /BACKTRACE -->
<div id="get">
<h3 id="get-info">GET</h3>
<p class="no-data">No GET data.</p>
<div class="clear"></div>
</div> <!-- /GET -->
<div id="post">
<h3 id="post-info">POST</h3>
<table class="req">
<tr>
<th>Variable</th>
<th>Value</th>
</tr>
<tr>
<td>file</td>
<td class="code"><div>{:filename=&gt;&quot;rliapi_json-0.0.7.gem&quot;, :type=&gt;&quot;application&#x2F;octet-stream&quot;, :name=&gt;&quot;file&quot;, :tempfile=&gt;#&lt;File:&#x2F;tmp&#x2F;RackMultipart20130510-32449-oh4y0j&gt;, :head=&gt;&quot;Content-Disposition: form-data; name=\&quot;file\&quot;; filename=\&quot;rliapi_json-0.0.7.gem\&quot;; modification-date=\&quot;Fri, 10 May 2013 10:11:10 -0700\&quot;; read-date=\&quot;Fri, 10 May 2013 10:11:10 -0700\&quot;\r\nContent-Type: application&#x2F;octet-stream\r\n&quot;}</div></td>
</tr>
</table>
<div class="clear"></div>
</div> <!-- /POST -->
<div id="cookies">
<h3 id="cookie-info">COOKIES</h3>
<p class="no-data">No cookie data.</p>
<div class="clear"></div>
</div> <!-- /COOKIES -->
<div id="rack">
<h3 id="env-info">Rack ENV</h3>
<table class="req">
<tr>
<th>Variable</th>
<th>Value</th>
</tr>
<tr>
<td>CONTENT_LENGTH</td>
<td class="code"><div>10553</div></td>
</tr>
<tr>
<td>CONTENT_TYPE</td>
<td class="code"><div>multipart&#x2F;form-data; boundary=a9ce87654cbe57fd122936fabf7fa22c5bac8f7a</div></td>
</tr>
<tr>
<td>GATEWAY_INTERFACE</td>
<td class="code"><div>CGI&#x2F;1.1</div></td>
</tr>
<tr>
<td>HTTP_ACCEPT</td>
<td class="code"><div>text&#x2F;plain</div></td>
</tr>
<tr>
<td>HTTP_DATE</td>
<td class="code"><div>Fri, 10 May 2013 17:11:49 GMT</div></td>
</tr>
<tr>
<td>HTTP_HOST</td>
<td class="code"><div>gems.wh.reachlocal.com:9292</div></td>
</tr>
<tr>
<td>HTTP_USER_AGENT</td>
<td class="code"><div>HTTPClient&#x2F;1.0 (2.3.3, ruby 2.0.0 (2013-02-24))</div></td>
</tr>
<tr>
<td>HTTP_VERSION</td>
<td class="code"><div>HTTP&#x2F;1.1</div></td>
</tr>
<tr>
<td>PATH_INFO</td>
<td class="code"><div>&#x2F;upload</div></td>
</tr>
<tr>
<td>QUERY_STRING</td>
<td class="code"><div></div></td>
</tr>
<tr>
<td>REMOTE_ADDR</td>
<td class="code"><div>10.10.16.59</div></td>
</tr>
<tr>
<td>REMOTE_HOST</td>
<td class="code"><div>10.10.16.59</div></td>
</tr>
<tr>
<td>REQUEST_METHOD</td>
<td class="code"><div>POST</div></td>
</tr>
<tr>
<td>REQUEST_PATH</td>
<td class="code"><div>&#x2F;upload</div></td>
</tr>
<tr>
<td>REQUEST_URI</td>
<td class="code"><div>http:&#x2F;&#x2F;gems.wh.reachlocal.com:9292&#x2F;upload</div></td>
</tr>
<tr>
<td>SCRIPT_NAME</td>
<td class="code"><div></div></td>
</tr>
<tr>
<td>SERVER_NAME</td>
<td class="code"><div>gems.wh.reachlocal.com</div></td>
</tr>
<tr>
<td>SERVER_PORT</td>
<td class="code"><div>9292</div></td>
</tr>
<tr>
<td>SERVER_PROTOCOL</td>
<td class="code"><div>HTTP&#x2F;1.1</div></td>
</tr>
<tr>
<td>SERVER_SOFTWARE</td>
<td class="code"><div>WEBrick&#x2F;1.3.1 (Ruby&#x2F;1.9.3&#x2F;2013-02-22)</div></td>
</tr>
<tr>
<td>rack.errors</td>
<td class="code"><div>#&lt;Object:0x00000019e24cf8&gt;</div></td>
</tr>
<tr>
<td>rack.input</td>
<td class="code"><div>#&lt;Rack::Lint::InputWrapper:0x0000001a7bfd30 @input=#&lt;StringIO:0x0000001a7d5608&gt;&gt;</div></td>
</tr>
<tr>
<td>rack.logger</td>
<td class="code"><div>#&lt;Rack::NullLogger:0x00000019db89e0 @app=#&lt;Rack::Protection::FrameOptions:0x00000019db8cb0 @app=#&lt;Rack::Protection::HttpOrigin:0x00000019db9110 @app=#&lt;Rack::Protection::IPSpoofing:0x00000019db92a0 @app=#&lt;Rack::Protection::JsonCsrf:0x00000019db9340 @app=#&lt;Rack::Protection::PathTraversal:0x00000019db93e0 @app=#&lt;Rack::Protection::XSSHeader:0x00000019db94a8 @app=#&lt;Hostess:0x000000199e2a28 @default_layout=:layout, @app=#&lt;Geminabox:0x0000001992c390 @default_layout=:layout, @app=nil, @template_cache=#&lt;Tilt::Cache:0x0000001992c368 @cache={}&gt;&gt;, @template_cache=#&lt;Tilt::Cache:0x000000199e29d8 @cache={}&gt;&gt;, @options={:reaction=&gt;:drop_session, :logging=&gt;true, :message=&gt;&quot;Forbidden&quot;, :encryptor=&gt;Digest::SHA1, :session_key=&gt;&quot;rack.session&quot;, :status=&gt;403, :allow_empty_referrer=&gt;true, :report_key=&gt;&quot;protection.failed&quot;, :html_types=&gt;[&quot;text&#x2F;html&quot;, &quot;application&#x2F;xhtml&quot;], :xss_mode=&gt;:block, :nosniff=&gt;true, :except=&gt;[:session_hijacking, :remote_token]}&gt;, @options={:reaction=&gt;:drop_session, :logging=&gt;true, :message=&gt;&quot;Forbidden&quot;, :encryptor=&gt;Digest::SHA1, :session_key=&gt;&quot;rack.session&quot;, :status=&gt;403, :allow_empty_referrer=&gt;true, :report_key=&gt;&quot;protection.failed&quot;, :html_types=&gt;[&quot;text&#x2F;html&quot;, &quot;application&#x2F;xhtml&quot;], :except=&gt;[:session_hijacking, :remote_token]}&gt;, @options={:reaction=&gt;:drop_session, :logging=&gt;true, :message=&gt;&quot;Forbidden&quot;, :encryptor=&gt;Digest::SHA1, :session_key=&gt;&quot;rack.session&quot;, :status=&gt;403, :allow_empty_referrer=&gt;true, :report_key=&gt;&quot;protection.failed&quot;, :html_types=&gt;[&quot;text&#x2F;html&quot;, &quot;application&#x2F;xhtml&quot;], :except=&gt;[:session_hijacking, :remote_token]}&gt;, @options={:reaction=&gt;:drop_session, :logging=&gt;true, :message=&gt;&quot;Forbidden&quot;, :encryptor=&gt;Digest::SHA1, :session_key=&gt;&quot;rack.session&quot;, :status=&gt;403, :allow_empty_referrer=&gt;true, :report_key=&gt;&quot;protection.failed&quot;, :html_types=&gt;[&quot;text&#x2F;html&quot;, &quot;application&#x2F;xhtml&quot;], :except=&gt;[:session_hijacking, :remote_token]}&gt;, @options={:reaction=&gt;:drop_session, :logging=&gt;true, :message=&gt;&quot;Forbidden&quot;, :encryptor=&gt;Digest::SHA1, :session_key=&gt;&quot;rack.session&quot;, :status=&gt;403, :allow_empty_referrer=&gt;true, :report_key=&gt;&quot;protection.failed&quot;, :html_types=&gt;[&quot;text&#x2F;html&quot;, &quot;application&#x2F;xhtml&quot;], :except=&gt;[:session_hijacking, :remote_token]}&gt;, @options={:reaction=&gt;:drop_session, :logging=&gt;true, :message=&gt;&quot;Forbidden&quot;, :encryptor=&gt;Digest::SHA1, :session_key=&gt;&quot;rack.session&quot;, :status=&gt;403, :allow_empty_referrer=&gt;true, :report_key=&gt;&quot;protection.failed&quot;, :html_types=&gt;[&quot;text&#x2F;html&quot;, &quot;application&#x2F;xhtml&quot;], :frame_options=&gt;:sameorigin, :except=&gt;[:session_hijacking, :remote_token]}, @frame_options=&quot;SAMEORIGIN&quot;&gt;&gt;</div></td>
</tr>
<tr>
<td>rack.multiprocess</td>
<td class="code"><div>false</div></td>
</tr>
<tr>
<td>rack.multithread</td>
<td class="code"><div>true</div></td>
</tr>
<tr>
<td>rack.request.cookie_hash</td>
<td class="code"><div>{}</div></td>
</tr>
<tr>
<td>rack.request.form_hash</td>
<td class="code"><div>{&quot;file&quot;=&gt;{:filename=&gt;&quot;rliapi_json-0.0.7.gem&quot;, :type=&gt;&quot;application&#x2F;octet-stream&quot;, :name=&gt;&quot;file&quot;, :tempfile=&gt;#&lt;File:&#x2F;tmp&#x2F;RackMultipart20130510-32449-oh4y0j&gt;, :head=&gt;&quot;Content-Disposition: form-data; name=\&quot;file\&quot;; filename=\&quot;rliapi_json-0.0.7.gem\&quot;; modification-date=\&quot;Fri, 10 May 2013 10:11:10 -0700\&quot;; read-date=\&quot;Fri, 10 May 2013 10:11:10 -0700\&quot;\r\nContent-Type: application&#x2F;octet-stream\r\n&quot;}}</div></td>
</tr>
<tr>
<td>rack.request.form_input</td>
<td class="code"><div>#&lt;Rack::Lint::InputWrapper:0x0000001a7bfd30 @input=#&lt;StringIO:0x0000001a7d5608&gt;&gt;</div></td>
</tr>
<tr>
<td>rack.request.query_hash</td>
<td class="code"><div>{}</div></td>
</tr>
<tr>
<td>rack.request.query_string</td>
<td class="code"><div></div></td>
</tr>
<tr>
<td>rack.run_once</td>
<td class="code"><div>false</div></td>
</tr>
<tr>
<td>rack.url_scheme</td>
<td class="code"><div>http</div></td>
</tr>
<tr>
<td>rack.version</td>
<td class="code"><div>[1, 2]</div></td>
</tr>
<tr>
<td>sinatra.accept</td>
<td class="code"><div>[text&#x2F;plain]</div></td>
</tr>
<tr>
<td>sinatra.commonlogger</td>
<td class="code"><div>true</div></td>
</tr>
<tr>
<td>sinatra.error</td>
<td class="code"><div>#&lt;Errno::EIO: Input&#x2F;output error - &lt;STDERR&gt;&gt;</div></td>
</tr>
</table>
<div class="clear"></div>
</div> <!-- /RACK ENV -->
<p id="explanation">You're seeing this error because you have
enabled the <code>show_exceptions</code> setting.</p>
</div> <!-- /WRAP -->
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment