Skip to content

Instantly share code, notes, and snippets.

@ongaeshi
Created February 15, 2011 15:27
Show Gist options
  • Select an option

  • Save ongaeshi/827650 to your computer and use it in GitHub Desktop.

Select an option

Save ongaeshi/827650 to your computer and use it in GitHub Desktop.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="robots" content="NONE,NOARCHIVE">
<title>Groonga::InvalidArgument at /</title>
<style type="text/css">
html * { padding:0; margin:0; }
body * { padding:10px 20px; }
body * * { padding:0; }
body { font:small sans-serif; }
body>div { border-bottom:1px solid #ddd; }
h1 { font-weight:normal; }
h2 { margin-bottom:.8em; }
h2 span { font-size:80%; color:#666; font-weight:normal; }
h3 { margin:1em 0 .5em 0; }
h4 { margin:0 0 .5em 0; font-weight: normal; }
table {
border:1px solid #ccc; border-collapse: collapse; background:white; }
tbody td, tbody th { vertical-align:top; padding:2px 3px; }
thead th {
padding:1px 6px 1px 3px; background:#fefefe; text-align:left;
font-weight:normal; font-size:11px; border:1px solid #ddd; }
tbody th { text-align:right; color:#666; padding-right:.5em; }
table.vars { margin:5px 0 2px 40px; }
table.vars td, table.req td { font-family:monospace; }
table td.code { width:100%;}
table td.code div { overflow:hidden; }
table.source th { color:#666; }
table.source td {
font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }
ul.traceback { list-style-type:none; }
ul.traceback li.frame { margin-bottom:1em; }
div.context { margin: 10px 0; }
div.context ol {
padding-left:30px; margin:0 10px; list-style-position: inside; }
div.context ol li {
font-family:monospace; white-space:pre; color:#666; cursor:pointer; }
div.context ol.context-line li { color:black; background-color:#ccc; }
div.context ol.context-line li span { float: right; }
div.commands { margin-left: 40px; }
div.commands a { color:black; text-decoration:none; }
#summary { background: #ffc; }
#summary h2 { font-weight: normal; color: #666; }
#summary ul#quicklinks { list-style-type: none; margin-bottom: 2em; }
#summary ul#quicklinks li { float: left; padding: 0 1em; }
#summary ul#quicklinks>li+li { border-left: 1px #666 solid; }
#explanation { background:#eee; }
#template, #template-not-exist { background:#f6f6f6; }
#template-not-exist ul { margin: 0 0 0 20px; }
#traceback { background:#eee; }
#requestinfo { background:#f6f6f6; padding-left:120px; }
#summary table { border:none; background:transparent; }
#requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }
#requestinfo h3 { margin-bottom:-1em; }
.error { background: #ffc; }
.specific { color:#cc3300; font-weight:bold; }
</style>
<script type="text/javascript">
//<!--
function getElementsByClassName(oElm, strTagName, strClassName){
// Written by Jonathan Snook, http://www.snook.ca/jon;
// Add-ons by Robert Nyman, http://www.robertnyman.com
var arrElements = (strTagName == "*" && document.all)? document.all :
oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array();
strClassName = strClassName.replace(/\-/g, "\\-");
var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$$)");
var oElement;
for(var i=0; i<arrElements.length; i++){
oElement = arrElements[i];
if(oRegExp.test(oElement.className)){
arrReturnElements.push(oElement);
}
}
return (arrReturnElements)
}
function hideAll(elems) {
for (var e = 0; e < elems.length; e++) {
elems[e].style.display = 'none';
}
}
window.onload = function() {
hideAll(getElementsByClassName(document, 'table', 'vars'));
hideAll(getElementsByClassName(document, 'ol', 'pre-context'));
hideAll(getElementsByClassName(document, 'ol', 'post-context'));
}
function toggle() {
for (var i = 0; i < arguments.length; i++) {
var e = document.getElementById(arguments[i]);
if (e) {
e.style.display = e.style.display == 'none' ? 'block' : 'none';
}
}
return false;
}
function varToggle(link, id) {
toggle('v' + id);
var s = link.getElementsByTagName('span')[0];
var uarr = String.fromCharCode(0x25b6);
var darr = String.fromCharCode(0x25bc);
s.innerHTML = s.innerHTML == uarr ? darr : uarr;
return false;
}
//-->
</script>
</head><body>
<div id="summary">
<h1>Groonga::InvalidArgument at /</h1>
<h2>invalid
argument: cannot open shared object file: No such file or directory:
&lt;c:\app\ruby187-mingw32\lib\groonga\plugins/tokenizers/mecab.dll&gt;
an: #&lt;Groonga::Database id: &lt;nil&gt;, name: (anonymous), path:
&lt;c:/users/ongaeshi/grendb/grendb.db&gt;, domain: (nil), range:
(nil), flags: &lt;&gt;&gt;
plugin.c:291: grn_plugin_register_by_path()</h2>
<table><tbody><tr>
<th>Ruby</th>
<td><code>./database.rb</code>: in <code>open</code>, line 28</td>
</tr><tr>
<th>Web</th>
<td><code>GET localhost/</code></td>
</tr></tbody></table>
<h3>Jump to:</h3>
<ul id="quicklinks">
<li><a href="#get-info">GET</a></li>
<li><a href="#post-info">POST</a></li>
<li><a href="#cookie-info">Cookies</a></li>
<li><a href="#env-info">ENV</a></li>
</ul>
</div>
<div id="traceback">
<h2>Traceback <span>(innermost first)</span></h2>
<ul class="traceback">
<li class="frame">
<code>./database.rb</code>: in <code>open</code>
<div class="context" id="c29351460">
<ol style="display: none;" start="21" class="pre-context" id="pre29351460">
<li onclick="toggle('pre29351460', 'post29351460')"> open(@@dbFile)
</li>
<li onclick="toggle('pre29351460', 'post29351460')"> end
</li>
<li onclick="toggle('pre29351460', 'post29351460')">
</li>
<li onclick="toggle('pre29351460', 'post29351460')"> def open(dbFile)
</li>
<li onclick="toggle('pre29351460', 'post29351460')"> dbfile = Pathname(File.expand_path(dbFile))
</li>
<li onclick="toggle('pre29351460', 'post29351460')">
</li>
<li onclick="toggle('pre29351460', 'post29351460')"> if dbfile.exist?
</li>
</ol>
<ol start="28" class="context-line">
<li onclick="toggle('pre29351460', 'post29351460')"> Groonga::Database.open(dbfile.to_s)<span>...</span></li></ol>
<ol style="display: none;" start="29" class="post-context" id="post29351460">
<li onclick="toggle('pre29351460', 'post29351460')"> else
</li>
<li onclick="toggle('pre29351460', 'post29351460')"> raise "error : #{dbfile.to_s} not found!!"
</li>
<li onclick="toggle('pre29351460', 'post29351460')"> end
</li>
<li onclick="toggle('pre29351460', 'post29351460')">
</li>
<li onclick="toggle('pre29351460', 'post29351460')"> @documents = Groonga::Context.default["documents"]
</li>
<li onclick="toggle('pre29351460', 'post29351460')"> end
</li>
<li onclick="toggle('pre29351460', 'post29351460')">
</li>
</ol>
</div>
</li>
<li class="frame">
<code>./database.rb</code>: in <code>open</code>
<div class="context" id="c29347332">
<ol style="display: none;" start="21" class="pre-context" id="pre29347332">
<li onclick="toggle('pre29347332', 'post29347332')"> open(@@dbFile)
</li>
<li onclick="toggle('pre29347332', 'post29347332')"> end
</li>
<li onclick="toggle('pre29347332', 'post29347332')">
</li>
<li onclick="toggle('pre29347332', 'post29347332')"> def open(dbFile)
</li>
<li onclick="toggle('pre29347332', 'post29347332')"> dbfile = Pathname(File.expand_path(dbFile))
</li>
<li onclick="toggle('pre29347332', 'post29347332')">
</li>
<li onclick="toggle('pre29347332', 'post29347332')"> if dbfile.exist?
</li>
</ol>
<ol start="28" class="context-line">
<li onclick="toggle('pre29347332', 'post29347332')"> Groonga::Database.open(dbfile.to_s)<span>...</span></li></ol>
<ol style="display: none;" start="29" class="post-context" id="post29347332">
<li onclick="toggle('pre29347332', 'post29347332')"> else
</li>
<li onclick="toggle('pre29347332', 'post29347332')"> raise "error : #{dbfile.to_s} not found!!"
</li>
<li onclick="toggle('pre29347332', 'post29347332')"> end
</li>
<li onclick="toggle('pre29347332', 'post29347332')">
</li>
<li onclick="toggle('pre29347332', 'post29347332')"> @documents = Groonga::Context.default["documents"]
</li>
<li onclick="toggle('pre29347332', 'post29347332')"> end
</li>
<li onclick="toggle('pre29347332', 'post29347332')">
</li>
</ol>
</div>
</li>
<li class="frame">
<code>./database.rb</code>: in <code>initialize</code>
<div class="context" id="c29343216">
<ol style="display: none;" start="14" class="pre-context" id="pre29343216">
<li onclick="toggle('pre29343216', 'post29343216')"> include Singleton
</li>
<li onclick="toggle('pre29343216', 'post29343216')">
</li>
<li onclick="toggle('pre29343216', 'post29343216')"> def self.setup(dbFile)
</li>
<li onclick="toggle('pre29343216', 'post29343216')"> @@dbFile = dbFile
</li>
<li onclick="toggle('pre29343216', 'post29343216')"> end
</li>
<li onclick="toggle('pre29343216', 'post29343216')">
</li>
<li onclick="toggle('pre29343216', 'post29343216')"> def initialize
</li>
</ol>
<ol start="21" class="context-line">
<li onclick="toggle('pre29343216', 'post29343216')"> open(@@dbFile)<span>...</span></li></ol>
<ol style="display: none;" start="22" class="post-context" id="post29343216">
<li onclick="toggle('pre29343216', 'post29343216')"> end
</li>
<li onclick="toggle('pre29343216', 'post29343216')">
</li>
<li onclick="toggle('pre29343216', 'post29343216')"> def open(dbFile)
</li>
<li onclick="toggle('pre29343216', 'post29343216')"> dbfile = Pathname(File.expand_path(dbFile))
</li>
<li onclick="toggle('pre29343216', 'post29343216')">
</li>
<li onclick="toggle('pre29343216', 'post29343216')"> if dbfile.exist?
</li>
<li onclick="toggle('pre29343216', 'post29343216')"> Groonga::Database.open(dbfile.to_s)
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/1.8/singleton.rb</code>: in <code>new</code>
<div class="context" id="c29339100">
<ol style="display: none;" start="87" class="pre-context" id="pre29339100">
<li onclick="toggle('pre29339100', 'post29339100')"> # * sub_class instance - after a successful creation
</li>
<li onclick="toggle('pre29339100', 'post29339100')"> # the form makes up for the lack of returns in progs
</li>
<li onclick="toggle('pre29339100', 'post29339100')"> Thread.critical = true
</li>
<li onclick="toggle('pre29339100', 'post29339100')"> if @__instance__.nil?
</li>
<li onclick="toggle('pre29339100', 'post29339100')"> @__instance__ = false
</li>
<li onclick="toggle('pre29339100', 'post29339100')"> Thread.critical = false
</li>
<li onclick="toggle('pre29339100', 'post29339100')"> begin
</li>
</ol>
<ol start="94" class="context-line">
<li onclick="toggle('pre29339100', 'post29339100')"> @__instance__ = new<span>...</span></li></ol>
<ol style="display: none;" start="95" class="post-context" id="post29339100">
<li onclick="toggle('pre29339100', 'post29339100')"> ensure
</li>
<li onclick="toggle('pre29339100', 'post29339100')"> if @__instance__
</li>
<li onclick="toggle('pre29339100', 'post29339100')"> class &lt;&lt;self
</li>
<li onclick="toggle('pre29339100', 'post29339100')"> remove_method :instance
</li>
<li onclick="toggle('pre29339100', 'post29339100')"> def instance; @__instance__ end
</li>
<li onclick="toggle('pre29339100', 'post29339100')"> end
</li>
<li onclick="toggle('pre29339100', 'post29339100')"> else
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/1.8/singleton.rb</code>: in <code>instance</code>
<div class="context" id="c29332824">
<ol style="display: none;" start="87" class="pre-context" id="pre29332824">
<li onclick="toggle('pre29332824', 'post29332824')"> # * sub_class instance - after a successful creation
</li>
<li onclick="toggle('pre29332824', 'post29332824')"> # the form makes up for the lack of returns in progs
</li>
<li onclick="toggle('pre29332824', 'post29332824')"> Thread.critical = true
</li>
<li onclick="toggle('pre29332824', 'post29332824')"> if @__instance__.nil?
</li>
<li onclick="toggle('pre29332824', 'post29332824')"> @__instance__ = false
</li>
<li onclick="toggle('pre29332824', 'post29332824')"> Thread.critical = false
</li>
<li onclick="toggle('pre29332824', 'post29332824')"> begin
</li>
</ol>
<ol start="94" class="context-line">
<li onclick="toggle('pre29332824', 'post29332824')"> @__instance__ = new<span>...</span></li></ol>
<ol style="display: none;" start="95" class="post-context" id="post29332824">
<li onclick="toggle('pre29332824', 'post29332824')"> ensure
</li>
<li onclick="toggle('pre29332824', 'post29332824')"> if @__instance__
</li>
<li onclick="toggle('pre29332824', 'post29332824')"> class &lt;&lt;self
</li>
<li onclick="toggle('pre29332824', 'post29332824')"> remove_method :instance
</li>
<li onclick="toggle('pre29332824', 'post29332824')"> def instance; @__instance__ end
</li>
<li onclick="toggle('pre29332824', 'post29332824')"> end
</li>
<li onclick="toggle('pre29332824', 'post29332824')"> else
</li>
</ol>
</div>
</li>
<li class="frame">
<code>./home.rb</code>: in <code>render</code>
<div class="context" id="c29326548">
<ol style="display: none;" start="27" class="pre-context" id="pre29326548">
<li onclick="toggle('pre29326548', 'post29326548')">
</li>
<li onclick="toggle('pre29326548', 'post29326548')"> private
</li>
<li onclick="toggle('pre29326548', 'post29326548')">
</li>
<li onclick="toggle('pre29326548', 'post29326548')"> def render
</li>
<li onclick="toggle('pre29326548', 'post29326548')"> r = HTMLRendeler.new(@request.script_name)
</li>
<li onclick="toggle('pre29326548', 'post29326548')"> @response.write r.header_home("gren", "gren", Version)
</li>
<li onclick="toggle('pre29326548', 'post29326548')"> @response.write r.search_box
</li>
</ol>
<ol start="34" class="context-line">
<li onclick="toggle('pre29326548', 'post29326548')"> @response.write r.footer_home("??", Database.instance.fileNum)<span>...</span></li></ol>
<ol style="display: none;" start="35" class="post-context" id="post29326548">
<li onclick="toggle('pre29326548', 'post29326548')"> @response.to_a
</li>
<li onclick="toggle('pre29326548', 'post29326548')"> end
</li>
<li onclick="toggle('pre29326548', 'post29326548')"> end
</li>
<li onclick="toggle('pre29326548', 'post29326548')">end
</li>
<li onclick="toggle('pre29326548', 'post29326548')">
</li>
</ol>
</div>
</li>
<li class="frame">
<code>./home.rb</code>: in <code>call</code>
<div class="context" id="c29324112">
<ol style="display: none;" start="18" class="pre-context" id="pre29324112">
<li onclick="toggle('pre29324112', 'post29324112')"> @env = env
</li>
<li onclick="toggle('pre29324112', 'post29324112')"> @request = Rack::Request.new(env)
</li>
<li onclick="toggle('pre29324112', 'post29324112')"> @query = Query.new(@request)
</li>
<li onclick="toggle('pre29324112', 'post29324112')">
</li>
<li onclick="toggle('pre29324112', 'post29324112')"> @response = Rack::Response.new
</li>
<li onclick="toggle('pre29324112', 'post29324112')"> @response["Content-Type"] = "text/html; charset=UTF-8"
</li>
<li onclick="toggle('pre29324112', 'post29324112')">
</li>
</ol>
<ol start="25" class="context-line">
<li onclick="toggle('pre29324112', 'post29324112')"> render<span>...</span></li></ol>
<ol style="display: none;" start="26" class="post-context" id="post29324112">
<li onclick="toggle('pre29324112', 'post29324112')"> end
</li>
<li onclick="toggle('pre29324112', 'post29324112')">
</li>
<li onclick="toggle('pre29324112', 'post29324112')"> private
</li>
<li onclick="toggle('pre29324112', 'post29324112')">
</li>
<li onclick="toggle('pre29324112', 'post29324112')"> def render
</li>
<li onclick="toggle('pre29324112', 'post29324112')"> r = HTMLRendeler.new(@request.script_name)
</li>
<li onclick="toggle('pre29324112', 'post29324112')"> @response.write r.header_home("gren", "gren", Version)
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/urlmap.rb</code>: in <code>call</code>
<div class="context" id="c29321676">
<ol style="display: none;" start="40" class="pre-context" id="pre29321676">
<li onclick="toggle('pre29321676', 'post29321676')"> hHost, sName, sPort = env.values_at('HTTP_HOST','SERVER_NAME','SERVER_PORT')
</li>
<li onclick="toggle('pre29321676', 'post29321676')"> @mapping.each { |host, location, match, app|
</li>
<li onclick="toggle('pre29321676', 'post29321676')"> next unless (hHost == host || sName == host \
</li>
<li onclick="toggle('pre29321676', 'post29321676')"> || (host.nil? &amp;&amp; (hHost == sName || hHost == sName+':'+sPort)))
</li>
<li onclick="toggle('pre29321676', 'post29321676')"> next unless path.to_s =~ match &amp;&amp; rest = $1
</li>
<li onclick="toggle('pre29321676', 'post29321676')"> next unless rest.empty? || rest[0] == ?/
</li>
<li onclick="toggle('pre29321676', 'post29321676')"> env.merge!('SCRIPT_NAME' =&gt; (script_name + location), 'PATH_INFO' =&gt; rest)
</li>
</ol>
<ol start="47" class="context-line">
<li onclick="toggle('pre29321676', 'post29321676')"> return app.call(env)<span>...</span></li></ol>
<ol style="display: none;" start="48" class="post-context" id="post29321676">
<li onclick="toggle('pre29321676', 'post29321676')"> }
</li>
<li onclick="toggle('pre29321676', 'post29321676')"> [404, {"Content-Type" =&gt; "text/plain", "X-Cascade" =&gt; "pass"}, ["Not Found: #{path}"]]
</li>
<li onclick="toggle('pre29321676', 'post29321676')"> ensure
</li>
<li onclick="toggle('pre29321676', 'post29321676')"> env.merge! 'PATH_INFO' =&gt; path, 'SCRIPT_NAME' =&gt; script_name
</li>
<li onclick="toggle('pre29321676', 'post29321676')"> end
</li>
<li onclick="toggle('pre29321676', 'post29321676')"> end
</li>
<li onclick="toggle('pre29321676', 'post29321676')">end
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/urlmap.rb</code>: in <code>each</code>
<div class="context" id="c29319048">
<ol style="display: none;" start="34" class="pre-context" id="pre29319048">
<li onclick="toggle('pre29319048', 'post29319048')"> }.sort_by { |(h, l, m, a)| [h ? -h.size : (-1.0 / 0.0), -l.size] } # Longest path first
</li>
<li onclick="toggle('pre29319048', 'post29319048')"> end
</li>
<li onclick="toggle('pre29319048', 'post29319048')">
</li>
<li onclick="toggle('pre29319048', 'post29319048')"> def call(env)
</li>
<li onclick="toggle('pre29319048', 'post29319048')"> path = env["PATH_INFO"]
</li>
<li onclick="toggle('pre29319048', 'post29319048')"> script_name = env['SCRIPT_NAME']
</li>
<li onclick="toggle('pre29319048', 'post29319048')"> hHost, sName, sPort = env.values_at('HTTP_HOST','SERVER_NAME','SERVER_PORT')
</li>
</ol>
<ol start="41" class="context-line">
<li onclick="toggle('pre29319048', 'post29319048')"> @mapping.each { |host, location, match, app|<span>...</span></li></ol>
<ol style="display: none;" start="42" class="post-context" id="post29319048">
<li onclick="toggle('pre29319048', 'post29319048')"> next unless (hHost == host || sName == host \
</li>
<li onclick="toggle('pre29319048', 'post29319048')"> || (host.nil? &amp;&amp; (hHost == sName || hHost == sName+':'+sPort)))
</li>
<li onclick="toggle('pre29319048', 'post29319048')"> next unless path.to_s =~ match &amp;&amp; rest = $1
</li>
<li onclick="toggle('pre29319048', 'post29319048')"> next unless rest.empty? || rest[0] == ?/
</li>
<li onclick="toggle('pre29319048', 'post29319048')"> env.merge!('SCRIPT_NAME' =&gt; (script_name + location), 'PATH_INFO' =&gt; rest)
</li>
<li onclick="toggle('pre29319048', 'post29319048')"> return app.call(env)
</li>
<li onclick="toggle('pre29319048', 'post29319048')"> }
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/urlmap.rb</code>: in <code>call</code>
<div class="context" id="c29316420">
<ol style="display: none;" start="34" class="pre-context" id="pre29316420">
<li onclick="toggle('pre29316420', 'post29316420')"> }.sort_by { |(h, l, m, a)| [h ? -h.size : (-1.0 / 0.0), -l.size] } # Longest path first
</li>
<li onclick="toggle('pre29316420', 'post29316420')"> end
</li>
<li onclick="toggle('pre29316420', 'post29316420')">
</li>
<li onclick="toggle('pre29316420', 'post29316420')"> def call(env)
</li>
<li onclick="toggle('pre29316420', 'post29316420')"> path = env["PATH_INFO"]
</li>
<li onclick="toggle('pre29316420', 'post29316420')"> script_name = env['SCRIPT_NAME']
</li>
<li onclick="toggle('pre29316420', 'post29316420')"> hHost, sName, sPort = env.values_at('HTTP_HOST','SERVER_NAME','SERVER_PORT')
</li>
</ol>
<ol start="41" class="context-line">
<li onclick="toggle('pre29316420', 'post29316420')"> @mapping.each { |host, location, match, app|<span>...</span></li></ol>
<ol style="display: none;" start="42" class="post-context" id="post29316420">
<li onclick="toggle('pre29316420', 'post29316420')"> next unless (hHost == host || sName == host \
</li>
<li onclick="toggle('pre29316420', 'post29316420')"> || (host.nil? &amp;&amp; (hHost == sName || hHost == sName+':'+sPort)))
</li>
<li onclick="toggle('pre29316420', 'post29316420')"> next unless path.to_s =~ match &amp;&amp; rest = $1
</li>
<li onclick="toggle('pre29316420', 'post29316420')"> next unless rest.empty? || rest[0] == ?/
</li>
<li onclick="toggle('pre29316420', 'post29316420')"> env.merge!('SCRIPT_NAME' =&gt; (script_name + location), 'PATH_INFO' =&gt; rest)
</li>
<li onclick="toggle('pre29316420', 'post29316420')"> return app.call(env)
</li>
<li onclick="toggle('pre29316420', 'post29316420')"> }
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/content_length.rb</code>: in <code>call</code>
<div class="context" id="c29313792">
<ol style="display: none;" start="6" class="pre-context" id="pre29313792">
<li onclick="toggle('pre29313792', 'post29313792')"> include Rack::Utils
</li>
<li onclick="toggle('pre29313792', 'post29313792')">
</li>
<li onclick="toggle('pre29313792', 'post29313792')"> def initialize(app)
</li>
<li onclick="toggle('pre29313792', 'post29313792')"> @app = app
</li>
<li onclick="toggle('pre29313792', 'post29313792')"> end
</li>
<li onclick="toggle('pre29313792', 'post29313792')">
</li>
<li onclick="toggle('pre29313792', 'post29313792')"> def call(env)
</li>
</ol>
<ol start="13" class="context-line">
<li onclick="toggle('pre29313792', 'post29313792')"> status, headers, body = @app.call(env)<span>...</span></li></ol>
<ol style="display: none;" start="14" class="post-context" id="post29313792">
<li onclick="toggle('pre29313792', 'post29313792')"> headers = HeaderHash.new(headers)
</li>
<li onclick="toggle('pre29313792', 'post29313792')">
</li>
<li onclick="toggle('pre29313792', 'post29313792')"> if !STATUS_WITH_NO_ENTITY_BODY.include?(status.to_i) &amp;&amp;
</li>
<li onclick="toggle('pre29313792', 'post29313792')"> !headers['Content-Length'] &amp;&amp;
</li>
<li onclick="toggle('pre29313792', 'post29313792')"> !headers['Transfer-Encoding'] &amp;&amp;
</li>
<li onclick="toggle('pre29313792', 'post29313792')"> (body.respond_to?(:to_ary) || body.respond_to?(:to_str))
</li>
<li onclick="toggle('pre29313792', 'post29313792')">
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/static.rb</code>: in <code>call</code>
<div class="context" id="c29311476">
<ol style="display: none;" start="26" class="pre-context" id="pre29311476">
<li onclick="toggle('pre29311476', 'post29311476')"> def call(env)
</li>
<li onclick="toggle('pre29311476', 'post29311476')"> path = env["PATH_INFO"]
</li>
<li onclick="toggle('pre29311476', 'post29311476')"> can_serve = @urls.any? { |url| path.index(url) == 0 }
</li>
<li onclick="toggle('pre29311476', 'post29311476')">
</li>
<li onclick="toggle('pre29311476', 'post29311476')"> if can_serve
</li>
<li onclick="toggle('pre29311476', 'post29311476')"> @file_server.call(env)
</li>
<li onclick="toggle('pre29311476', 'post29311476')"> else
</li>
</ol>
<ol start="33" class="context-line">
<li onclick="toggle('pre29311476', 'post29311476')"> @app.call(env)<span>...</span></li></ol>
<ol style="display: none;" start="34" class="post-context" id="post29311476">
<li onclick="toggle('pre29311476', 'post29311476')"> end
</li>
<li onclick="toggle('pre29311476', 'post29311476')"> end
</li>
<li onclick="toggle('pre29311476', 'post29311476')">
</li>
<li onclick="toggle('pre29311476', 'post29311476')"> end
</li>
<li onclick="toggle('pre29311476', 'post29311476')">end
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/runtime.rb</code>: in <code>call</code>
<div class="context" id="c29309052">
<ol style="display: none;" start="10" class="pre-context" id="pre29309052">
<li onclick="toggle('pre29309052', 'post29309052')"> @app = app
</li>
<li onclick="toggle('pre29309052', 'post29309052')"> @header_name = "X-Runtime"
</li>
<li onclick="toggle('pre29309052', 'post29309052')"> @header_name &lt;&lt; "-#{name}" if name
</li>
<li onclick="toggle('pre29309052', 'post29309052')"> end
</li>
<li onclick="toggle('pre29309052', 'post29309052')">
</li>
<li onclick="toggle('pre29309052', 'post29309052')"> def call(env)
</li>
<li onclick="toggle('pre29309052', 'post29309052')"> start_time = Time.now
</li>
</ol>
<ol start="17" class="context-line">
<li onclick="toggle('pre29309052', 'post29309052')"> status, headers, body = @app.call(env)<span>...</span></li></ol>
<ol style="display: none;" start="18" class="post-context" id="post29309052">
<li onclick="toggle('pre29309052', 'post29309052')"> request_time = Time.now - start_time
</li>
<li onclick="toggle('pre29309052', 'post29309052')">
</li>
<li onclick="toggle('pre29309052', 'post29309052')"> if !headers.has_key?(@header_name)
</li>
<li onclick="toggle('pre29309052', 'post29309052')"> headers[@header_name] = "%0.6f" % request_time
</li>
<li onclick="toggle('pre29309052', 'post29309052')"> end
</li>
<li onclick="toggle('pre29309052', 'post29309052')">
</li>
<li onclick="toggle('pre29309052', 'post29309052')"> [status, headers, body]
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/commonlogger.rb</code>: in <code>call</code>
<div class="context" id="c29306760">
<ol style="display: none;" start="11" class="pre-context" id="pre29306760">
<li onclick="toggle('pre29306760', 'post29306760')"> def initialize(app, logger=nil)
</li>
<li onclick="toggle('pre29306760', 'post29306760')"> @app = app
</li>
<li onclick="toggle('pre29306760', 'post29306760')"> @logger = logger
</li>
<li onclick="toggle('pre29306760', 'post29306760')"> end
</li>
<li onclick="toggle('pre29306760', 'post29306760')">
</li>
<li onclick="toggle('pre29306760', 'post29306760')"> def call(env)
</li>
<li onclick="toggle('pre29306760', 'post29306760')"> began_at = Time.now
</li>
</ol>
<ol start="18" class="context-line">
<li onclick="toggle('pre29306760', 'post29306760')"> status, header, body = @app.call(env)<span>...</span></li></ol>
<ol style="display: none;" start="19" class="post-context" id="post29306760">
<li onclick="toggle('pre29306760', 'post29306760')"> header = Utils::HeaderHash.new(header)
</li>
<li onclick="toggle('pre29306760', 'post29306760')"> log(env, status, header, began_at)
</li>
<li onclick="toggle('pre29306760', 'post29306760')"> [status, header, body]
</li>
<li onclick="toggle('pre29306760', 'post29306760')"> end
</li>
<li onclick="toggle('pre29306760', 'post29306760')">
</li>
<li onclick="toggle('pre29306760', 'post29306760')"> private
</li>
<li onclick="toggle('pre29306760', 'post29306760')">
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/lint.rb</code>: in <code>_call</code>
<div class="context" id="c29304204">
<ol style="display: none;" start="41" class="pre-context" id="pre29304204">
<li onclick="toggle('pre29304204', 'post29304204')"> assert("No env given") { env }
</li>
<li onclick="toggle('pre29304204', 'post29304204')"> check_env env
</li>
<li onclick="toggle('pre29304204', 'post29304204')">
</li>
<li onclick="toggle('pre29304204', 'post29304204')"> env['rack.input'] = InputWrapper.new(env['rack.input'])
</li>
<li onclick="toggle('pre29304204', 'post29304204')"> env['rack.errors'] = ErrorWrapper.new(env['rack.errors'])
</li>
<li onclick="toggle('pre29304204', 'post29304204')">
</li>
<li onclick="toggle('pre29304204', 'post29304204')"> ## and returns an Array of exactly three values:
</li>
</ol>
<ol start="48" class="context-line">
<li onclick="toggle('pre29304204', 'post29304204')"> status, headers, @body = @app.call(env)<span>...</span></li></ol>
<ol style="display: none;" start="49" class="post-context" id="post29304204">
<li onclick="toggle('pre29304204', 'post29304204')"> ## The *status*,
</li>
<li onclick="toggle('pre29304204', 'post29304204')"> check_status status
</li>
<li onclick="toggle('pre29304204', 'post29304204')"> ## the *headers*,
</li>
<li onclick="toggle('pre29304204', 'post29304204')"> check_headers headers
</li>
<li onclick="toggle('pre29304204', 'post29304204')"> ## and the *body*.
</li>
<li onclick="toggle('pre29304204', 'post29304204')"> check_content_type status, headers
</li>
<li onclick="toggle('pre29304204', 'post29304204')"> check_content_length status, headers
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/lint.rb</code>: in <code>call</code>
<div class="context" id="c29295432">
<ol style="display: none;" start="29" class="pre-context" id="pre29295432">
<li onclick="toggle('pre29295432', 'post29295432')"> ## after to catch all mistakes.
</li>
<li onclick="toggle('pre29295432', 'post29295432')">
</li>
<li onclick="toggle('pre29295432', 'post29295432')"> ## = Rack applications
</li>
<li onclick="toggle('pre29295432', 'post29295432')">
</li>
<li onclick="toggle('pre29295432', 'post29295432')"> ## A Rack application is an Ruby object (not a class) that
</li>
<li onclick="toggle('pre29295432', 'post29295432')"> ## responds to +call+.
</li>
<li onclick="toggle('pre29295432', 'post29295432')"> def call(env=nil)
</li>
</ol>
<ol start="36" class="context-line">
<li onclick="toggle('pre29295432', 'post29295432')"> dup._call(env)<span>...</span></li></ol>
<ol style="display: none;" start="37" class="post-context" id="post29295432">
<li onclick="toggle('pre29295432', 'post29295432')"> end
</li>
<li onclick="toggle('pre29295432', 'post29295432')">
</li>
<li onclick="toggle('pre29295432', 'post29295432')"> def _call(env)
</li>
<li onclick="toggle('pre29295432', 'post29295432')"> ## It takes exactly one argument, the *environment*
</li>
<li onclick="toggle('pre29295432', 'post29295432')"> assert("No env given") { env }
</li>
<li onclick="toggle('pre29295432', 'post29295432')"> check_env env
</li>
<li onclick="toggle('pre29295432', 'post29295432')">
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/showexceptions.rb</code>: in <code>call</code>
<div class="context" id="c29286660">
<ol style="display: none;" start="17" class="pre-context" id="pre29286660">
<li onclick="toggle('pre29286660', 'post29286660')">
</li>
<li onclick="toggle('pre29286660', 'post29286660')"> def initialize(app)
</li>
<li onclick="toggle('pre29286660', 'post29286660')"> @app = app
</li>
<li onclick="toggle('pre29286660', 'post29286660')"> @template = ERB.new(TEMPLATE)
</li>
<li onclick="toggle('pre29286660', 'post29286660')"> end
</li>
<li onclick="toggle('pre29286660', 'post29286660')">
</li>
<li onclick="toggle('pre29286660', 'post29286660')"> def call(env)
</li>
</ol>
<ol start="24" class="context-line">
<li onclick="toggle('pre29286660', 'post29286660')"> @app.call(env)<span>...</span></li></ol>
<ol style="display: none;" start="25" class="post-context" id="post29286660">
<li onclick="toggle('pre29286660', 'post29286660')"> rescue StandardError, LoadError, SyntaxError =&gt; e
</li>
<li onclick="toggle('pre29286660', 'post29286660')"> backtrace = pretty(env, e)
</li>
<li onclick="toggle('pre29286660', 'post29286660')"> [500,
</li>
<li onclick="toggle('pre29286660', 'post29286660')"> {"Content-Type" =&gt; "text/html",
</li>
<li onclick="toggle('pre29286660', 'post29286660')"> "Content-Length" =&gt; backtrace.join.size.to_s},
</li>
<li onclick="toggle('pre29286660', 'post29286660')"> backtrace]
</li>
<li onclick="toggle('pre29286660', 'post29286660')"> end
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/commonlogger.rb</code>: in <code>call</code>
<div class="context" id="c29280504">
<ol style="display: none;" start="11" class="pre-context" id="pre29280504">
<li onclick="toggle('pre29280504', 'post29280504')"> def initialize(app, logger=nil)
</li>
<li onclick="toggle('pre29280504', 'post29280504')"> @app = app
</li>
<li onclick="toggle('pre29280504', 'post29280504')"> @logger = logger
</li>
<li onclick="toggle('pre29280504', 'post29280504')"> end
</li>
<li onclick="toggle('pre29280504', 'post29280504')">
</li>
<li onclick="toggle('pre29280504', 'post29280504')"> def call(env)
</li>
<li onclick="toggle('pre29280504', 'post29280504')"> began_at = Time.now
</li>
</ol>
<ol start="18" class="context-line">
<li onclick="toggle('pre29280504', 'post29280504')"> status, header, body = @app.call(env)<span>...</span></li></ol>
<ol style="display: none;" start="19" class="post-context" id="post29280504">
<li onclick="toggle('pre29280504', 'post29280504')"> header = Utils::HeaderHash.new(header)
</li>
<li onclick="toggle('pre29280504', 'post29280504')"> log(env, status, header, began_at)
</li>
<li onclick="toggle('pre29280504', 'post29280504')"> [status, header, body]
</li>
<li onclick="toggle('pre29280504', 'post29280504')"> end
</li>
<li onclick="toggle('pre29280504', 'post29280504')">
</li>
<li onclick="toggle('pre29280504', 'post29280504')"> private
</li>
<li onclick="toggle('pre29280504', 'post29280504')">
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/content_length.rb</code>: in <code>call</code>
<div class="context" id="c29277948">
<ol style="display: none;" start="6" class="pre-context" id="pre29277948">
<li onclick="toggle('pre29277948', 'post29277948')"> include Rack::Utils
</li>
<li onclick="toggle('pre29277948', 'post29277948')">
</li>
<li onclick="toggle('pre29277948', 'post29277948')"> def initialize(app)
</li>
<li onclick="toggle('pre29277948', 'post29277948')"> @app = app
</li>
<li onclick="toggle('pre29277948', 'post29277948')"> end
</li>
<li onclick="toggle('pre29277948', 'post29277948')">
</li>
<li onclick="toggle('pre29277948', 'post29277948')"> def call(env)
</li>
</ol>
<ol start="13" class="context-line">
<li onclick="toggle('pre29277948', 'post29277948')"> status, headers, body = @app.call(env)<span>...</span></li></ol>
<ol style="display: none;" start="14" class="post-context" id="post29277948">
<li onclick="toggle('pre29277948', 'post29277948')"> headers = HeaderHash.new(headers)
</li>
<li onclick="toggle('pre29277948', 'post29277948')">
</li>
<li onclick="toggle('pre29277948', 'post29277948')"> if !STATUS_WITH_NO_ENTITY_BODY.include?(status.to_i) &amp;&amp;
</li>
<li onclick="toggle('pre29277948', 'post29277948')"> !headers['Content-Length'] &amp;&amp;
</li>
<li onclick="toggle('pre29277948', 'post29277948')"> !headers['Transfer-Encoding'] &amp;&amp;
</li>
<li onclick="toggle('pre29277948', 'post29277948')"> (body.respond_to?(:to_ary) || body.respond_to?(:to_str))
</li>
<li onclick="toggle('pre29277948', 'post29277948')">
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/handler/webrick.rb</code>: in <code>service</code>
<div class="context" id="c29275632">
<ol style="display: none;" start="45" class="pre-context" id="pre29275632">
<li onclick="toggle('pre29275632', 'post29275632')"> env["QUERY_STRING"] ||= ""
</li>
<li onclick="toggle('pre29275632', 'post29275632')"> env["REQUEST_PATH"] ||= "/"
</li>
<li onclick="toggle('pre29275632', 'post29275632')"> unless env["PATH_INFO"] == ""
</li>
<li onclick="toggle('pre29275632', 'post29275632')"> path, n = req.request_uri.path, env["SCRIPT_NAME"].length
</li>
<li onclick="toggle('pre29275632', 'post29275632')"> env["PATH_INFO"] = path[n, path.length-n]
</li>
<li onclick="toggle('pre29275632', 'post29275632')"> end
</li>
<li onclick="toggle('pre29275632', 'post29275632')">
</li>
</ol>
<ol start="52" class="context-line">
<li onclick="toggle('pre29275632', 'post29275632')"> status, headers, body = @app.call(env)<span>...</span></li></ol>
<ol style="display: none;" start="53" class="post-context" id="post29275632">
<li onclick="toggle('pre29275632', 'post29275632')"> begin
</li>
<li onclick="toggle('pre29275632', 'post29275632')"> res.status = status.to_i
</li>
<li onclick="toggle('pre29275632', 'post29275632')"> headers.each { |k, vs|
</li>
<li onclick="toggle('pre29275632', 'post29275632')"> if k.downcase == "set-cookie"
</li>
<li onclick="toggle('pre29275632', 'post29275632')"> res.cookies.concat vs.split("\n")
</li>
<li onclick="toggle('pre29275632', 'post29275632')"> else
</li>
<li onclick="toggle('pre29275632', 'post29275632')"> vs.split("\n").each { |v|
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/1.8/webrick/httpserver.rb</code>: in <code>service</code>
<div class="context" id="c29272788">
<ol style="display: none;" start="97" class="pre-context" id="pre29272788">
<li onclick="toggle('pre29272788', 'post29272788')">
</li>
<li onclick="toggle('pre29272788', 'post29272788')"> servlet, options, script_name, path_info = search_servlet(req.path)
</li>
<li onclick="toggle('pre29272788', 'post29272788')"> raise HTTPStatus::NotFound, "`#{req.path}' not found." unless servlet
</li>
<li onclick="toggle('pre29272788', 'post29272788')"> req.script_name = script_name
</li>
<li onclick="toggle('pre29272788', 'post29272788')"> req.path_info = path_info
</li>
<li onclick="toggle('pre29272788', 'post29272788')"> si = servlet.get_instance(self, *options)
</li>
<li onclick="toggle('pre29272788', 'post29272788')"> @logger.debug(format("%s is invoked.", si.class.name))
</li>
</ol>
<ol start="104" class="context-line">
<li onclick="toggle('pre29272788', 'post29272788')"> si.service(req, res)<span>...</span></li></ol>
<ol style="display: none;" start="105" class="post-context" id="post29272788">
<li onclick="toggle('pre29272788', 'post29272788')"> end
</li>
<li onclick="toggle('pre29272788', 'post29272788')">
</li>
<li onclick="toggle('pre29272788', 'post29272788')"> def do_OPTIONS(req, res)
</li>
<li onclick="toggle('pre29272788', 'post29272788')"> res["allow"] = "GET,HEAD,POST,OPTIONS"
</li>
<li onclick="toggle('pre29272788', 'post29272788')"> end
</li>
<li onclick="toggle('pre29272788', 'post29272788')">
</li>
<li onclick="toggle('pre29272788', 'post29272788')"> def mount(dir, servlet, *options)
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/1.8/webrick/httpserver.rb</code>: in <code>run</code>
<div class="context" id="c29268300">
<ol style="display: none;" start="58" class="pre-context" id="pre29268300">
<li onclick="toggle('pre29268300', 'post29268300')"> res.request_uri = req.request_uri
</li>
<li onclick="toggle('pre29268300', 'post29268300')"> res.request_http_version = req.http_version
</li>
<li onclick="toggle('pre29268300', 'post29268300')"> res.keep_alive = req.keep_alive?
</li>
<li onclick="toggle('pre29268300', 'post29268300')"> server = lookup_server(req) || self
</li>
<li onclick="toggle('pre29268300', 'post29268300')"> if callback = server[:RequestCallback] || server[:RequestHandler]
</li>
<li onclick="toggle('pre29268300', 'post29268300')"> callback.call(req, res)
</li>
<li onclick="toggle('pre29268300', 'post29268300')"> end
</li>
</ol>
<ol start="65" class="context-line">
<li onclick="toggle('pre29268300', 'post29268300')"> server.service(req, res)<span>...</span></li></ol>
<ol style="display: none;" start="66" class="post-context" id="post29268300">
<li onclick="toggle('pre29268300', 'post29268300')"> rescue HTTPStatus::EOFError, HTTPStatus::RequestTimeout =&gt; ex
</li>
<li onclick="toggle('pre29268300', 'post29268300')"> res.set_error(ex)
</li>
<li onclick="toggle('pre29268300', 'post29268300')"> rescue HTTPStatus::Error =&gt; ex
</li>
<li onclick="toggle('pre29268300', 'post29268300')"> @logger.error(ex.message)
</li>
<li onclick="toggle('pre29268300', 'post29268300')"> res.set_error(ex)
</li>
<li onclick="toggle('pre29268300', 'post29268300')"> rescue HTTPStatus::Status =&gt; ex
</li>
<li onclick="toggle('pre29268300', 'post29268300')"> res.status = ex.code
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/1.8/webrick/server.rb</code>: in <code>start_thread</code>
<div class="context" id="c29263812">
<ol style="display: none;" start="166" class="pre-context" id="pre29263812">
<li onclick="toggle('pre29263812', 'post29263812')"> addr = sock.peeraddr
</li>
<li onclick="toggle('pre29263812', 'post29263812')"> @logger.debug "accept: #{addr[3]}:#{addr[1]}"
</li>
<li onclick="toggle('pre29263812', 'post29263812')"> rescue SocketError
</li>
<li onclick="toggle('pre29263812', 'post29263812')"> @logger.debug "accept: &lt;address unknown&gt;"
</li>
<li onclick="toggle('pre29263812', 'post29263812')"> raise
</li>
<li onclick="toggle('pre29263812', 'post29263812')"> end
</li>
<li onclick="toggle('pre29263812', 'post29263812')"> call_callback(:AcceptCallback, sock)
</li>
</ol>
<ol start="173" class="context-line">
<li onclick="toggle('pre29263812', 'post29263812')"> block ? block.call(sock) : run(sock)<span>...</span></li></ol>
<ol style="display: none;" start="174" class="post-context" id="post29263812">
<li onclick="toggle('pre29263812', 'post29263812')"> rescue Errno::ENOTCONN
</li>
<li onclick="toggle('pre29263812', 'post29263812')"> @logger.debug "Errno::ENOTCONN raised"
</li>
<li onclick="toggle('pre29263812', 'post29263812')"> rescue ServerError =&gt; ex
</li>
<li onclick="toggle('pre29263812', 'post29263812')"> msg = "#{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}"
</li>
<li onclick="toggle('pre29263812', 'post29263812')"> @logger.error msg
</li>
<li onclick="toggle('pre29263812', 'post29263812')"> rescue Exception =&gt; ex
</li>
<li onclick="toggle('pre29263812', 'post29263812')"> @logger.error ex
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/1.8/webrick/server.rb</code>: in <code>start</code>
<div class="context" id="c29259444">
<ol style="display: none;" start="155" class="pre-context" id="pre29259444">
<li onclick="toggle('pre29259444', 'post29259444')"> msg = "#{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}"
</li>
<li onclick="toggle('pre29259444', 'post29259444')"> @logger.error msg
</li>
<li onclick="toggle('pre29259444', 'post29259444')"> end
</li>
<li onclick="toggle('pre29259444', 'post29259444')"> return sock
</li>
<li onclick="toggle('pre29259444', 'post29259444')"> end
</li>
<li onclick="toggle('pre29259444', 'post29259444')">
</li>
<li onclick="toggle('pre29259444', 'post29259444')"> def start_thread(sock, &amp;block)
</li>
</ol>
<ol start="162" class="context-line">
<li onclick="toggle('pre29259444', 'post29259444')"> Thread.start{<span>...</span></li></ol>
<ol style="display: none;" start="163" class="post-context" id="post29259444">
<li onclick="toggle('pre29259444', 'post29259444')"> begin
</li>
<li onclick="toggle('pre29259444', 'post29259444')"> Thread.current[:WEBrickSocket] = sock
</li>
<li onclick="toggle('pre29259444', 'post29259444')"> begin
</li>
<li onclick="toggle('pre29259444', 'post29259444')"> addr = sock.peeraddr
</li>
<li onclick="toggle('pre29259444', 'post29259444')"> @logger.debug "accept: #{addr[3]}:#{addr[1]}"
</li>
<li onclick="toggle('pre29259444', 'post29259444')"> rescue SocketError
</li>
<li onclick="toggle('pre29259444', 'post29259444')"> @logger.debug "accept: &lt;address unknown&gt;"
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/1.8/webrick/server.rb</code>: in <code>start_thread</code>
<div class="context" id="c29255076">
<ol style="display: none;" start="155" class="pre-context" id="pre29255076">
<li onclick="toggle('pre29255076', 'post29255076')"> msg = "#{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}"
</li>
<li onclick="toggle('pre29255076', 'post29255076')"> @logger.error msg
</li>
<li onclick="toggle('pre29255076', 'post29255076')"> end
</li>
<li onclick="toggle('pre29255076', 'post29255076')"> return sock
</li>
<li onclick="toggle('pre29255076', 'post29255076')"> end
</li>
<li onclick="toggle('pre29255076', 'post29255076')">
</li>
<li onclick="toggle('pre29255076', 'post29255076')"> def start_thread(sock, &amp;block)
</li>
</ol>
<ol start="162" class="context-line">
<li onclick="toggle('pre29255076', 'post29255076')"> Thread.start{<span>...</span></li></ol>
<ol style="display: none;" start="163" class="post-context" id="post29255076">
<li onclick="toggle('pre29255076', 'post29255076')"> begin
</li>
<li onclick="toggle('pre29255076', 'post29255076')"> Thread.current[:WEBrickSocket] = sock
</li>
<li onclick="toggle('pre29255076', 'post29255076')"> begin
</li>
<li onclick="toggle('pre29255076', 'post29255076')"> addr = sock.peeraddr
</li>
<li onclick="toggle('pre29255076', 'post29255076')"> @logger.debug "accept: #{addr[3]}:#{addr[1]}"
</li>
<li onclick="toggle('pre29255076', 'post29255076')"> rescue SocketError
</li>
<li onclick="toggle('pre29255076', 'post29255076')"> @logger.debug "accept: &lt;address unknown&gt;"
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/1.8/webrick/server.rb</code>: in <code>start</code>
<div class="context" id="c29250708">
<ol style="display: none;" start="88" class="pre-context" id="pre29250708">
<li onclick="toggle('pre29250708', 'post29250708')"> @status = :Running
</li>
<li onclick="toggle('pre29250708', 'post29250708')"> while @status == :Running
</li>
<li onclick="toggle('pre29250708', 'post29250708')"> begin
</li>
<li onclick="toggle('pre29250708', 'post29250708')"> if svrs = IO.select(@listeners, nil, nil, 2.0)
</li>
<li onclick="toggle('pre29250708', 'post29250708')"> svrs[0].each{|svr|
</li>
<li onclick="toggle('pre29250708', 'post29250708')"> @tokens.pop # blocks while no token is there.
</li>
<li onclick="toggle('pre29250708', 'post29250708')"> if sock = accept_client(svr)
</li>
</ol>
<ol start="95" class="context-line">
<li onclick="toggle('pre29250708', 'post29250708')"> th = start_thread(sock, &amp;block)<span>...</span></li></ol>
<ol style="display: none;" start="96" class="post-context" id="post29250708">
<li onclick="toggle('pre29250708', 'post29250708')"> th[:WEBrickThread] = true
</li>
<li onclick="toggle('pre29250708', 'post29250708')"> thgroup.add(th)
</li>
<li onclick="toggle('pre29250708', 'post29250708')"> else
</li>
<li onclick="toggle('pre29250708', 'post29250708')"> @tokens.push(nil)
</li>
<li onclick="toggle('pre29250708', 'post29250708')"> end
</li>
<li onclick="toggle('pre29250708', 'post29250708')"> }
</li>
<li onclick="toggle('pre29250708', 'post29250708')"> end
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/1.8/webrick/server.rb</code>: in <code>each</code>
<div class="context" id="c29246340">
<ol style="display: none;" start="85" class="pre-context" id="pre29246340">
<li onclick="toggle('pre29246340', 'post29246340')"> call_callback(:StartCallback)
</li>
<li onclick="toggle('pre29246340', 'post29246340')">
</li>
<li onclick="toggle('pre29246340', 'post29246340')"> thgroup = ThreadGroup.new
</li>
<li onclick="toggle('pre29246340', 'post29246340')"> @status = :Running
</li>
<li onclick="toggle('pre29246340', 'post29246340')"> while @status == :Running
</li>
<li onclick="toggle('pre29246340', 'post29246340')"> begin
</li>
<li onclick="toggle('pre29246340', 'post29246340')"> if svrs = IO.select(@listeners, nil, nil, 2.0)
</li>
</ol>
<ol start="92" class="context-line">
<li onclick="toggle('pre29246340', 'post29246340')"> svrs[0].each{|svr|<span>...</span></li></ol>
<ol style="display: none;" start="93" class="post-context" id="post29246340">
<li onclick="toggle('pre29246340', 'post29246340')"> @tokens.pop # blocks while no token is there.
</li>
<li onclick="toggle('pre29246340', 'post29246340')"> if sock = accept_client(svr)
</li>
<li onclick="toggle('pre29246340', 'post29246340')"> th = start_thread(sock, &amp;block)
</li>
<li onclick="toggle('pre29246340', 'post29246340')"> th[:WEBrickThread] = true
</li>
<li onclick="toggle('pre29246340', 'post29246340')"> thgroup.add(th)
</li>
<li onclick="toggle('pre29246340', 'post29246340')"> else
</li>
<li onclick="toggle('pre29246340', 'post29246340')"> @tokens.push(nil)
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/1.8/webrick/server.rb</code>: in <code>start</code>
<div class="context" id="c29241972">
<ol style="display: none;" start="85" class="pre-context" id="pre29241972">
<li onclick="toggle('pre29241972', 'post29241972')"> call_callback(:StartCallback)
</li>
<li onclick="toggle('pre29241972', 'post29241972')">
</li>
<li onclick="toggle('pre29241972', 'post29241972')"> thgroup = ThreadGroup.new
</li>
<li onclick="toggle('pre29241972', 'post29241972')"> @status = :Running
</li>
<li onclick="toggle('pre29241972', 'post29241972')"> while @status == :Running
</li>
<li onclick="toggle('pre29241972', 'post29241972')"> begin
</li>
<li onclick="toggle('pre29241972', 'post29241972')"> if svrs = IO.select(@listeners, nil, nil, 2.0)
</li>
</ol>
<ol start="92" class="context-line">
<li onclick="toggle('pre29241972', 'post29241972')"> svrs[0].each{|svr|<span>...</span></li></ol>
<ol style="display: none;" start="93" class="post-context" id="post29241972">
<li onclick="toggle('pre29241972', 'post29241972')"> @tokens.pop # blocks while no token is there.
</li>
<li onclick="toggle('pre29241972', 'post29241972')"> if sock = accept_client(svr)
</li>
<li onclick="toggle('pre29241972', 'post29241972')"> th = start_thread(sock, &amp;block)
</li>
<li onclick="toggle('pre29241972', 'post29241972')"> th[:WEBrickThread] = true
</li>
<li onclick="toggle('pre29241972', 'post29241972')"> thgroup.add(th)
</li>
<li onclick="toggle('pre29241972', 'post29241972')"> else
</li>
<li onclick="toggle('pre29241972', 'post29241972')"> @tokens.push(nil)
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/1.8/webrick/server.rb</code>: in <code>start</code>
<div class="context" id="c29237604">
<ol style="display: none;" start="16" class="pre-context" id="pre29237604">
<li onclick="toggle('pre29237604', 'post29237604')">
</li>
<li onclick="toggle('pre29237604', 'post29237604')">module WEBrick
</li>
<li onclick="toggle('pre29237604', 'post29237604')">
</li>
<li onclick="toggle('pre29237604', 'post29237604')"> class ServerError &lt; StandardError; end
</li>
<li onclick="toggle('pre29237604', 'post29237604')">
</li>
<li onclick="toggle('pre29237604', 'post29237604')"> class SimpleServer
</li>
<li onclick="toggle('pre29237604', 'post29237604')"> def SimpleServer.start
</li>
</ol>
<ol start="23" class="context-line">
<li onclick="toggle('pre29237604', 'post29237604')"> yield<span>...</span></li></ol>
<ol style="display: none;" start="24" class="post-context" id="post29237604">
<li onclick="toggle('pre29237604', 'post29237604')"> end
</li>
<li onclick="toggle('pre29237604', 'post29237604')"> end
</li>
<li onclick="toggle('pre29237604', 'post29237604')">
</li>
<li onclick="toggle('pre29237604', 'post29237604')"> class Daemon
</li>
<li onclick="toggle('pre29237604', 'post29237604')"> def Daemon.start
</li>
<li onclick="toggle('pre29237604', 'post29237604')"> exit!(0) if fork
</li>
<li onclick="toggle('pre29237604', 'post29237604')"> Process::setsid
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/1.8/webrick/server.rb</code>: in <code>start</code>
<div class="context" id="c29233236">
<ol style="display: none;" start="75" class="pre-context" id="pre29233236">
<li onclick="toggle('pre29233236', 'post29233236')"> @listeners += Utils::create_listeners(address, port, @logger)
</li>
<li onclick="toggle('pre29233236', 'post29233236')"> end
</li>
<li onclick="toggle('pre29233236', 'post29233236')">
</li>
<li onclick="toggle('pre29233236', 'post29233236')"> def start(&amp;block)
</li>
<li onclick="toggle('pre29233236', 'post29233236')"> raise ServerError, "already started." if @status != :Stop
</li>
<li onclick="toggle('pre29233236', 'post29233236')"> server_type = @config[:ServerType] || SimpleServer
</li>
<li onclick="toggle('pre29233236', 'post29233236')">
</li>
</ol>
<ol start="82" class="context-line">
<li onclick="toggle('pre29233236', 'post29233236')"> server_type.start{<span>...</span></li></ol>
<ol style="display: none;" start="83" class="post-context" id="post29233236">
<li onclick="toggle('pre29233236', 'post29233236')"> @logger.info \
</li>
<li onclick="toggle('pre29233236', 'post29233236')"> "#{self.class}#start: pid=#{$$} port=#{@config[:Port]}"
</li>
<li onclick="toggle('pre29233236', 'post29233236')"> call_callback(:StartCallback)
</li>
<li onclick="toggle('pre29233236', 'post29233236')">
</li>
<li onclick="toggle('pre29233236', 'post29233236')"> thgroup = ThreadGroup.new
</li>
<li onclick="toggle('pre29233236', 'post29233236')"> @status = :Running
</li>
<li onclick="toggle('pre29233236', 'post29233236')"> while @status == :Running
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/handler/webrick.rb</code>: in <code>run</code>
<div class="context" id="c29228868">
<ol style="display: none;" start="6" class="pre-context" id="pre29228868">
<li onclick="toggle('pre29228868', 'post29228868')"> module Handler
</li>
<li onclick="toggle('pre29228868', 'post29228868')"> class WEBrick &lt; ::WEBrick::HTTPServlet::AbstractServlet
</li>
<li onclick="toggle('pre29228868', 'post29228868')"> def self.run(app, options={})
</li>
<li onclick="toggle('pre29228868', 'post29228868')"> options[:BindAddress] = options.delete(:Host) if options[:Host]
</li>
<li onclick="toggle('pre29228868', 'post29228868')"> @server = ::WEBrick::HTTPServer.new(options)
</li>
<li onclick="toggle('pre29228868', 'post29228868')"> @server.mount "/", Rack::Handler::WEBrick, app
</li>
<li onclick="toggle('pre29228868', 'post29228868')"> yield @server if block_given?
</li>
</ol>
<ol start="13" class="context-line">
<li onclick="toggle('pre29228868', 'post29228868')"> @server.start<span>...</span></li></ol>
<ol style="display: none;" start="14" class="post-context" id="post29228868">
<li onclick="toggle('pre29228868', 'post29228868')"> end
</li>
<li onclick="toggle('pre29228868', 'post29228868')">
</li>
<li onclick="toggle('pre29228868', 'post29228868')"> def self.shutdown
</li>
<li onclick="toggle('pre29228868', 'post29228868')"> @server.shutdown
</li>
<li onclick="toggle('pre29228868', 'post29228868')"> @server = nil
</li>
<li onclick="toggle('pre29228868', 'post29228868')"> end
</li>
<li onclick="toggle('pre29228868', 'post29228868')">
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/server.rb</code>: in <code>start</code>
<div class="context" id="c29226024">
<ol style="display: none;" start="206" class="pre-context" id="pre29226024">
<li onclick="toggle('pre29226024', 'post29226024')"> if server.respond_to?(:shutdown)
</li>
<li onclick="toggle('pre29226024', 'post29226024')"> server.shutdown
</li>
<li onclick="toggle('pre29226024', 'post29226024')"> else
</li>
<li onclick="toggle('pre29226024', 'post29226024')"> exit
</li>
<li onclick="toggle('pre29226024', 'post29226024')"> end
</li>
<li onclick="toggle('pre29226024', 'post29226024')"> end
</li>
<li onclick="toggle('pre29226024', 'post29226024')">
</li>
</ol>
<ol start="213" class="context-line">
<li onclick="toggle('pre29226024', 'post29226024')"> server.run wrapped_app, options<span>...</span></li></ol>
<ol style="display: none;" start="214" class="post-context" id="post29226024">
<li onclick="toggle('pre29226024', 'post29226024')"> end
</li>
<li onclick="toggle('pre29226024', 'post29226024')">
</li>
<li onclick="toggle('pre29226024', 'post29226024')"> def server
</li>
<li onclick="toggle('pre29226024', 'post29226024')"> @_server ||= Rack::Handler.get(options[:server]) || Rack::Handler.default(options)
</li>
<li onclick="toggle('pre29226024', 'post29226024')"> end
</li>
<li onclick="toggle('pre29226024', 'post29226024')">
</li>
<li onclick="toggle('pre29226024', 'post29226024')"> private
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rack-1.2.1/lib/rack/server.rb</code>: in <code>start</code>
<div class="context" id="c29220804">
<ol style="display: none;" start="93" class="pre-context" id="pre29220804">
<li onclick="toggle('pre29220804', 'post29220804')"> # [200, {'Content-Type' =&gt; 'text/html'}, ['hello world']]
</li>
<li onclick="toggle('pre29220804', 'post29220804')"> # end,
</li>
<li onclick="toggle('pre29220804', 'post29220804')"> # :server =&gt; 'cgi'
</li>
<li onclick="toggle('pre29220804', 'post29220804')"> # )
</li>
<li onclick="toggle('pre29220804', 'post29220804')"> #
</li>
<li onclick="toggle('pre29220804', 'post29220804')"> # Further options available here are documented on Rack::Server#initialize
</li>
<li onclick="toggle('pre29220804', 'post29220804')"> def self.start(options = nil)
</li>
</ol>
<ol start="100" class="context-line">
<li onclick="toggle('pre29220804', 'post29220804')"> new(options).start<span>...</span></li></ol>
<ol style="display: none;" start="101" class="post-context" id="post29220804">
<li onclick="toggle('pre29220804', 'post29220804')"> end
</li>
<li onclick="toggle('pre29220804', 'post29220804')">
</li>
<li onclick="toggle('pre29220804', 'post29220804')"> attr_writer :options
</li>
<li onclick="toggle('pre29220804', 'post29220804')">
</li>
<li onclick="toggle('pre29220804', 'post29220804')"> # Options may include:
</li>
<li onclick="toggle('pre29220804', 'post29220804')"> # * :app
</li>
<li onclick="toggle('pre29220804', 'post29220804')"> # a rack application to run (overrides :config)
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/gren-0.3.1/lib/grenweb/cli.rb</code>: in <code>execute</code>
<div class="context" id="c29215584">
<ol style="display: none;" start="34" class="pre-context" id="pre29215584">
<li onclick="toggle('pre29215584', 'post29215584')"> # サーバースクリプトのある場所へ移動
</li>
<li onclick="toggle('pre29215584', 'post29215584')"> FileUtils.cd(File.dirname(__FILE__))
</li>
<li onclick="toggle('pre29215584', 'post29215584')">
</li>
<li onclick="toggle('pre29215584', 'post29215584')"> # ブラウザ起動
</li>
<li onclick="toggle('pre29215584', 'post29215584')"> Launchy.open("http://localhost:#{option[:Port]}") unless (option[:NoBrowser])
</li>
<li onclick="toggle('pre29215584', 'post29215584')">
</li>
<li onclick="toggle('pre29215584', 'post29215584')"> # サーバー起動
</li>
</ol>
<ol start="41" class="context-line">
<li onclick="toggle('pre29215584', 'post29215584')"> Rack::Server.start(<span>...</span></li></ol>
<ol style="display: none;" start="42" class="post-context" id="post29215584">
<li onclick="toggle('pre29215584', 'post29215584')"> :environment =&gt; "development",
</li>
<li onclick="toggle('pre29215584', 'post29215584')"> :pid =&gt; nil,
</li>
<li onclick="toggle('pre29215584', 'post29215584')"> :Port =&gt; option[:Port],
</li>
<li onclick="toggle('pre29215584', 'post29215584')"> :Host =&gt; "0.0.0.0",
</li>
<li onclick="toggle('pre29215584', 'post29215584')"> :AccessLog =&gt; [],
</li>
<li onclick="toggle('pre29215584', 'post29215584')"> :config =&gt; "grenweb.ru"
</li>
<li onclick="toggle('pre29215584', 'post29215584')"> )
</li>
</ol>
</div>
</li>
<li class="frame">
<code>c:/app/ruby187-mingw32/lib/ruby/gems/1.8/gems/gren-0.3.1/bin/grenweb</code>: in <code>nil</code>
<div class="context" id="c29212992">
<ol style="display: none;" start="4" class="pre-context" id="pre29212992">
<li onclick="toggle('pre29212992', 'post29212992')"># Copyright (c) 2010. All rights reserved.
</li>
<li onclick="toggle('pre29212992', 'post29212992')">
</li>
<li onclick="toggle('pre29212992', 'post29212992')">require 'rubygems'
</li>
<li onclick="toggle('pre29212992', 'post29212992')">require File.expand_path(File.dirname(__FILE__) + "/../lib/gren")
</li>
<li onclick="toggle('pre29212992', 'post29212992')">require "grenweb/cli"
</li>
<li onclick="toggle('pre29212992', 'post29212992')">
</li>
<li onclick="toggle('pre29212992', 'post29212992')">Version = "0.3.1"
</li>
</ol>
<ol start="11" class="context-line">
<li onclick="toggle('pre29212992', 'post29212992')">Grenweb::CLI.execute(STDOUT, ARGV)<span>...</span></li></ol>
<ol style="display: none;" start="12" class="post-context" id="post29212992">
</ol>
</div>
</li>
<li class="frame">
<code>C:/app/ruby187-mingw32/bin/grenweb</code>: in <code>load</code>
<div class="context" id="c29210904">
<ol style="display: none;" start="12" class="pre-context" id="pre29210904">
<li onclick="toggle('pre29210904', 'post29210904')">
</li>
<li onclick="toggle('pre29210904', 'post29210904')">if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
</li>
<li onclick="toggle('pre29210904', 'post29210904')"> version = $1
</li>
<li onclick="toggle('pre29210904', 'post29210904')"> ARGV.shift
</li>
<li onclick="toggle('pre29210904', 'post29210904')">end
</li>
<li onclick="toggle('pre29210904', 'post29210904')">
</li>
<li onclick="toggle('pre29210904', 'post29210904')">gem 'gren', version
</li>
</ol>
<ol start="19" class="context-line">
<li onclick="toggle('pre29210904', 'post29210904')">load Gem.bin_path('gren', 'grenweb', version)<span>...</span></li></ol>
<ol style="display: none;" start="20" class="post-context" id="post29210904">
</ol>
</div>
</li>
<li class="frame">
<code>C:/app/ruby187-mingw32/bin/grenweb</code>: in <code>nil</code>
<div class="context" id="c29208708">
<ol style="display: none;" start="12" class="pre-context" id="pre29208708">
<li onclick="toggle('pre29208708', 'post29208708')">
</li>
<li onclick="toggle('pre29208708', 'post29208708')">if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
</li>
<li onclick="toggle('pre29208708', 'post29208708')"> version = $1
</li>
<li onclick="toggle('pre29208708', 'post29208708')"> ARGV.shift
</li>
<li onclick="toggle('pre29208708', 'post29208708')">end
</li>
<li onclick="toggle('pre29208708', 'post29208708')">
</li>
<li onclick="toggle('pre29208708', 'post29208708')">gem 'gren', version
</li>
</ol>
<ol start="19" class="context-line">
<li onclick="toggle('pre29208708', 'post29208708')">load Gem.bin_path('gren', 'grenweb', version)<span>...</span></li></ol>
<ol style="display: none;" start="20" class="post-context" id="post29208708">
</ol>
</div>
</li>
</ul>
</div>
<div id="requestinfo">
<h2>Request information</h2>
<h3 id="get-info">GET</h3>
<p>No GET data.</p>
<h3 id="post-info">POST</h3>
<p>No POST data.</p>
<h3 id="cookie-info">COOKIES</h3>
<p>No cookie data.</p>
<h3 id="env-info">Rack ENV</h3>
<table class="req">
<thead>
<tr>
<th>Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>GATEWAY_INTERFACE</td>
<td class="code"><div>CGI/1.1</div></td>
</tr>
<tr>
<td>HTTP_ACCEPT</td>
<td class="code"><div>text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</div></td>
</tr>
<tr>
<td>HTTP_ACCEPT_CHARSET</td>
<td class="code"><div>Shift_JIS,utf-8;q=0.7,*;q=0.7</div></td>
</tr>
<tr>
<td>HTTP_ACCEPT_ENCODING</td>
<td class="code"><div>gzip,deflate</div></td>
</tr>
<tr>
<td>HTTP_ACCEPT_LANGUAGE</td>
<td class="code"><div>ja,en-us;q=0.7,en;q=0.3</div></td>
</tr>
<tr>
<td>HTTP_CONNECTION</td>
<td class="code"><div>keep-alive</div></td>
</tr>
<tr>
<td>HTTP_HOST</td>
<td class="code"><div>localhost:9292</div></td>
</tr>
<tr>
<td>HTTP_KEEP_ALIVE</td>
<td class="code"><div>300</div></td>
</tr>
<tr>
<td>HTTP_USER_AGENT</td>
<td class="code"><div>Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.16) Gecko/20101130 Firefox/3.5.16 (.NET CLR 3.5.30729)</div></td>
</tr>
<tr>
<td>HTTP_VERSION</td>
<td class="code"><div>HTTP/1.1</div></td>
</tr>
<tr>
<td>PATH_INFO</td>
<td class="code"><div>/</div></td>
</tr>
<tr>
<td>QUERY_STRING</td>
<td class="code"><div></div></td>
</tr>
<tr>
<td>REMOTE_ADDR</td>
<td class="code"><div>127.0.0.1</div></td>
</tr>
<tr>
<td>REMOTE_HOST</td>
<td class="code"><div>localhost</div></td>
</tr>
<tr>
<td>REQUEST_METHOD</td>
<td class="code"><div>GET</div></td>
</tr>
<tr>
<td>REQUEST_PATH</td>
<td class="code"><div>/</div></td>
</tr>
<tr>
<td>REQUEST_URI</td>
<td class="code"><div>http://localhost:9292/</div></td>
</tr>
<tr>
<td>SCRIPT_NAME</td>
<td class="code"><div></div></td>
</tr>
<tr>
<td>SERVER_NAME</td>
<td class="code"><div>localhost</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/1.1</div></td>
</tr>
<tr>
<td>SERVER_SOFTWARE</td>
<td class="code"><div>WEBrick/1.3.1 (Ruby/1.8.7/2010-08-16)</div></td>
</tr>
<tr>
<td>rack.errors</td>
<td class="code"><div>#&lt;Rack::Lint::ErrorWrapper:0x3804108 @error=#&lt;IO:0x28eda88&gt;&gt;</div></td>
</tr>
<tr>
<td>rack.input</td>
<td class="code"><div>#&lt;Rack::Lint::InputWrapper:0x3804150 @input=#&lt;StringIO:0x3807570&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.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, 1]</div></td>
</tr>
</tbody>
</table>
</div>
<div id="explanation">
<p>
You're seeing this error because you use <code>Rack::ShowExceptions</code>.
</p>
</div>
</body></html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment