Created
February 15, 2011 15:27
-
-
Save ongaeshi/827650 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!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: | |
| <c:\app\ruby187-mingw32\lib\groonga\plugins/tokenizers/mecab.dll> | |
| an: #<Groonga::Database id: <nil>, name: (anonymous), path: | |
| <c:/users/ongaeshi/grendb/grendb.db>, domain: (nil), range: | |
| (nil), flags: <>> | |
| 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 <<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 <<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? && (hHost == sName || hHost == sName+':'+sPort))) | |
| </li> | |
| <li onclick="toggle('pre29321676', 'post29321676')"> next unless path.to_s =~ match && rest = $1 | |
| </li> | |
| <li onclick="toggle('pre29321676', 'post29321676')"> next unless rest.empty? || rest[0] == ?/ | |
| </li> | |
| <li onclick="toggle('pre29321676', 'post29321676')"> env.merge!('SCRIPT_NAME' => (script_name + location), 'PATH_INFO' => 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" => "text/plain", "X-Cascade" => "pass"}, ["Not Found: #{path}"]] | |
| </li> | |
| <li onclick="toggle('pre29321676', 'post29321676')"> ensure | |
| </li> | |
| <li onclick="toggle('pre29321676', 'post29321676')"> env.merge! 'PATH_INFO' => path, 'SCRIPT_NAME' => 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? && (hHost == sName || hHost == sName+':'+sPort))) | |
| </li> | |
| <li onclick="toggle('pre29319048', 'post29319048')"> next unless path.to_s =~ match && rest = $1 | |
| </li> | |
| <li onclick="toggle('pre29319048', 'post29319048')"> next unless rest.empty? || rest[0] == ?/ | |
| </li> | |
| <li onclick="toggle('pre29319048', 'post29319048')"> env.merge!('SCRIPT_NAME' => (script_name + location), 'PATH_INFO' => 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? && (hHost == sName || hHost == sName+':'+sPort))) | |
| </li> | |
| <li onclick="toggle('pre29316420', 'post29316420')"> next unless path.to_s =~ match && rest = $1 | |
| </li> | |
| <li onclick="toggle('pre29316420', 'post29316420')"> next unless rest.empty? || rest[0] == ?/ | |
| </li> | |
| <li onclick="toggle('pre29316420', 'post29316420')"> env.merge!('SCRIPT_NAME' => (script_name + location), 'PATH_INFO' => 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) && | |
| </li> | |
| <li onclick="toggle('pre29313792', 'post29313792')"> !headers['Content-Length'] && | |
| </li> | |
| <li onclick="toggle('pre29313792', 'post29313792')"> !headers['Transfer-Encoding'] && | |
| </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 << "-#{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 => 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" => "text/html", | |
| </li> | |
| <li onclick="toggle('pre29286660', 'post29286660')"> "Content-Length" => 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) && | |
| </li> | |
| <li onclick="toggle('pre29277948', 'post29277948')"> !headers['Content-Length'] && | |
| </li> | |
| <li onclick="toggle('pre29277948', 'post29277948')"> !headers['Transfer-Encoding'] && | |
| </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 => ex | |
| </li> | |
| <li onclick="toggle('pre29268300', 'post29268300')"> res.set_error(ex) | |
| </li> | |
| <li onclick="toggle('pre29268300', 'post29268300')"> rescue HTTPStatus::Error => 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 => 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: <address unknown>" | |
| </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 => 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 => 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, &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: <address unknown>" | |
| </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, &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: <address unknown>" | |
| </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, &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, &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, &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 < 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(&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 < ::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' => 'text/html'}, ['hello world']] | |
| </li> | |
| <li onclick="toggle('pre29220804', 'post29220804')"> # end, | |
| </li> | |
| <li onclick="toggle('pre29220804', 'post29220804')"> # :server => '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 => "development", | |
| </li> | |
| <li onclick="toggle('pre29215584', 'post29215584')"> :pid => nil, | |
| </li> | |
| <li onclick="toggle('pre29215584', 'post29215584')"> :Port => option[:Port], | |
| </li> | |
| <li onclick="toggle('pre29215584', 'post29215584')"> :Host => "0.0.0.0", | |
| </li> | |
| <li onclick="toggle('pre29215584', 'post29215584')"> :AccessLog => [], | |
| </li> | |
| <li onclick="toggle('pre29215584', 'post29215584')"> :config => "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>#<Rack::Lint::ErrorWrapper:0x3804108 @error=#<IO:0x28eda88>></div></td> | |
| </tr> | |
| <tr> | |
| <td>rack.input</td> | |
| <td class="code"><div>#<Rack::Lint::InputWrapper:0x3804150 @input=#<StringIO:0x3807570>></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