mongrel 0.3.11 → 0.3.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. data/Rakefile +4 -2
  2. data/bin/mongrel_rails +65 -101
  3. data/bin/mongrel_rails_service +1 -1
  4. data/bin/mongrel_rails_svc +131 -115
  5. data/doc/rdoc/classes/Class.html +197 -0
  6. data/doc/rdoc/classes/Class.src/M000001.html +24 -0
  7. data/doc/rdoc/classes/Class.src/M000002.html +62 -0
  8. data/doc/rdoc/classes/Class.src/M000003.html +21 -0
  9. data/doc/rdoc/classes/Class.src/M000004.html +20 -0
  10. data/doc/rdoc/classes/IO.html +170 -0
  11. data/doc/rdoc/classes/IO.src/M000005.html +19 -0
  12. data/doc/rdoc/classes/IO.src/M000006.html +19 -0
  13. data/doc/rdoc/classes/Kernel.html +159 -0
  14. data/doc/rdoc/classes/Kernel.src/M000025.html +19 -0
  15. data/doc/rdoc/classes/Kernel.src/M000026.html +25 -0
  16. data/doc/rdoc/classes/Mongrel.html +181 -0
  17. data/doc/rdoc/classes/Mongrel/CGIWrapper.html +383 -0
  18. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000090.html +24 -0
  19. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000091.html +47 -0
  20. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000092.html +34 -0
  21. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000093.html +27 -0
  22. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000094.html +25 -0
  23. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000095.html +18 -0
  24. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000096.html +18 -0
  25. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000097.html +18 -0
  26. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000098.html +19 -0
  27. data/doc/rdoc/classes/Mongrel/Camping.html +177 -0
  28. data/doc/rdoc/classes/Mongrel/Camping.src/M000048.html +22 -0
  29. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.html +165 -0
  30. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000049.html +18 -0
  31. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000050.html +27 -0
  32. data/doc/rdoc/classes/Mongrel/Command.html +119 -0
  33. data/doc/rdoc/classes/Mongrel/Command/Base.html +337 -0
  34. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000029.html +24 -0
  35. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000030.html +41 -0
  36. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000031.html +18 -0
  37. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000032.html +18 -0
  38. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000033.html +18 -0
  39. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000034.html +22 -0
  40. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000035.html +18 -0
  41. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000036.html +18 -0
  42. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000037.html +18 -0
  43. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000038.html +18 -0
  44. data/doc/rdoc/classes/Mongrel/Command/Registry.html +192 -0
  45. data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000039.html +20 -0
  46. data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000040.html +25 -0
  47. data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000041.html +46 -0
  48. data/doc/rdoc/classes/Mongrel/Configurator.html +563 -0
  49. data/doc/rdoc/classes/Mongrel/Configurator.src/M000099.html +24 -0
  50. data/doc/rdoc/classes/Mongrel/Configurator.src/M000100.html +23 -0
  51. data/doc/rdoc/classes/Mongrel/Configurator.src/M000101.html +18 -0
  52. data/doc/rdoc/classes/Mongrel/Configurator.src/M000102.html +32 -0
  53. data/doc/rdoc/classes/Mongrel/Configurator.src/M000103.html +19 -0
  54. data/doc/rdoc/classes/Mongrel/Configurator.src/M000104.html +31 -0
  55. data/doc/rdoc/classes/Mongrel/Configurator.src/M000105.html +33 -0
  56. data/doc/rdoc/classes/Mongrel/Configurator.src/M000106.html +18 -0
  57. data/doc/rdoc/classes/Mongrel/Configurator.src/M000107.html +25 -0
  58. data/doc/rdoc/classes/Mongrel/Configurator.src/M000108.html +19 -0
  59. data/doc/rdoc/classes/Mongrel/Configurator.src/M000109.html +22 -0
  60. data/doc/rdoc/classes/Mongrel/Configurator.src/M000110.html +21 -0
  61. data/doc/rdoc/classes/Mongrel/Configurator.src/M000111.html +18 -0
  62. data/doc/rdoc/classes/Mongrel/Configurator.src/M000112.html +27 -0
  63. data/doc/rdoc/classes/Mongrel/Configurator.src/M000113.html +46 -0
  64. data/doc/rdoc/classes/Mongrel/Configurator.src/M000114.html +18 -0
  65. data/doc/rdoc/classes/Mongrel/Const.html +286 -0
  66. data/doc/rdoc/classes/Mongrel/DirHandler.html +288 -0
  67. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000058.html +20 -0
  68. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000059.html +42 -0
  69. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000060.html +40 -0
  70. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000061.html +51 -0
  71. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000062.html +40 -0
  72. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000063.html +18 -0
  73. data/doc/rdoc/classes/Mongrel/Error404Handler.html +171 -0
  74. data/doc/rdoc/classes/Mongrel/Error404Handler.src/M000115.html +18 -0
  75. data/doc/rdoc/classes/Mongrel/Error404Handler.src/M000116.html +18 -0
  76. data/doc/rdoc/classes/Mongrel/HeaderOut.html +185 -0
  77. data/doc/rdoc/classes/Mongrel/HeaderOut.src/M000072.html +18 -0
  78. data/doc/rdoc/classes/Mongrel/HeaderOut.src/M000073.html +18 -0
  79. data/doc/rdoc/classes/Mongrel/HttpHandler.html +152 -0
  80. data/doc/rdoc/classes/Mongrel/HttpHandler.src/M000074.html +17 -0
  81. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.html +169 -0
  82. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000027.html +18 -0
  83. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000028.html +17 -0
  84. data/doc/rdoc/classes/Mongrel/HttpParser.html +271 -0
  85. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000051.html +28 -0
  86. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000052.html +29 -0
  87. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000053.html +29 -0
  88. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000054.html +41 -0
  89. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000055.html +27 -0
  90. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000056.html +27 -0
  91. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000057.html +28 -0
  92. data/doc/rdoc/classes/Mongrel/HttpRequest.html +222 -0
  93. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000117.html +28 -0
  94. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000118.html +20 -0
  95. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000119.html +20 -0
  96. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000120.html +32 -0
  97. data/doc/rdoc/classes/Mongrel/HttpResponse.html +371 -0
  98. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000075.html +26 -0
  99. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000076.html +20 -0
  100. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000077.html +25 -0
  101. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000078.html +22 -0
  102. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000079.html +22 -0
  103. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000080.html +23 -0
  104. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000081.html +18 -0
  105. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000082.html +20 -0
  106. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000083.html +18 -0
  107. data/doc/rdoc/classes/Mongrel/HttpServer.html +360 -0
  108. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000064.html +24 -0
  109. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000065.html +65 -0
  110. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000066.html +24 -0
  111. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000067.html +60 -0
  112. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000068.html +28 -0
  113. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000069.html +18 -0
  114. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000070.html +22 -0
  115. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000071.html +18 -0
  116. data/doc/rdoc/classes/Mongrel/Rails.html +112 -0
  117. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.html +223 -0
  118. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000042.html +35 -0
  119. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000043.html +25 -0
  120. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000044.html +32 -0
  121. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.html +250 -0
  122. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000045.html +22 -0
  123. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000046.html +48 -0
  124. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000047.html +23 -0
  125. data/doc/rdoc/classes/Mongrel/StopServer.html +117 -0
  126. data/doc/rdoc/classes/Mongrel/URIClassifier.html +301 -0
  127. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000084.html +18 -0
  128. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000085.html +18 -0
  129. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000086.html +39 -0
  130. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000087.html +51 -0
  131. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000088.html +36 -0
  132. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000089.html +83 -0
  133. data/doc/rdoc/classes/MongrelDbg.html +209 -0
  134. data/doc/rdoc/classes/MongrelDbg.src/M000020.html +19 -0
  135. data/doc/rdoc/classes/MongrelDbg.src/M000021.html +20 -0
  136. data/doc/rdoc/classes/MongrelDbg.src/M000022.html +22 -0
  137. data/doc/rdoc/classes/MongrelDbg.src/M000023.html +21 -0
  138. data/doc/rdoc/classes/MongrelDbg.src/M000024.html +18 -0
  139. data/doc/rdoc/classes/ObjectTracker.html +176 -0
  140. data/doc/rdoc/classes/ObjectTracker.src/M000016.html +22 -0
  141. data/doc/rdoc/classes/ObjectTracker.src/M000017.html +18 -0
  142. data/doc/rdoc/classes/ObjectTracker.src/M000018.html +18 -0
  143. data/doc/rdoc/classes/ObjectTracker.src/M000019.html +46 -0
  144. data/doc/rdoc/classes/RequestLog.html +113 -0
  145. data/doc/rdoc/classes/RequestLog/Files.html +144 -0
  146. data/doc/rdoc/classes/RequestLog/Files.src/M000121.html +19 -0
  147. data/doc/rdoc/classes/RequestLog/Objects.html +144 -0
  148. data/doc/rdoc/classes/RequestLog/Objects.src/M000122.html +19 -0
  149. data/doc/rdoc/classes/RequestLog/Params.html +144 -0
  150. data/doc/rdoc/classes/RequestLog/Params.src/M000123.html +19 -0
  151. data/doc/rdoc/classes/Stats.html +306 -0
  152. data/doc/rdoc/classes/Stats.src/M000009.html +19 -0
  153. data/doc/rdoc/classes/Stats.src/M000010.html +23 -0
  154. data/doc/rdoc/classes/Stats.src/M000011.html +26 -0
  155. data/doc/rdoc/classes/Stats.src/M000012.html +18 -0
  156. data/doc/rdoc/classes/Stats.src/M000013.html +18 -0
  157. data/doc/rdoc/classes/Stats.src/M000014.html +19 -0
  158. data/doc/rdoc/classes/Stats.src/M000015.html +20 -0
  159. data/doc/rdoc/classes/TCPServer.html +173 -0
  160. data/doc/rdoc/classes/TCPServer.src/M000007.html +19 -0
  161. data/doc/rdoc/created.rid +1 -0
  162. data/doc/rdoc/files/COPYING.html +756 -0
  163. data/doc/rdoc/files/LICENSE.html +756 -0
  164. data/doc/rdoc/files/README.html +302 -0
  165. data/doc/rdoc/files/ext/http11/http11_c.html +101 -0
  166. data/doc/rdoc/files/lib/mongrel/camping_rb.html +108 -0
  167. data/doc/rdoc/files/lib/mongrel/cgi_rb.html +108 -0
  168. data/doc/rdoc/files/lib/mongrel/command_rb.html +111 -0
  169. data/doc/rdoc/files/lib/mongrel/debug_rb.html +110 -0
  170. data/doc/rdoc/files/lib/mongrel/handlers_rb.html +109 -0
  171. data/doc/rdoc/files/lib/mongrel/init_rb.html +109 -0
  172. data/doc/rdoc/files/lib/mongrel/rails_rb.html +111 -0
  173. data/doc/rdoc/files/lib/mongrel/stats_rb.html +117 -0
  174. data/doc/rdoc/files/lib/mongrel/tcphack_rb.html +109 -0
  175. data/doc/rdoc/files/lib/mongrel_rb.html +118 -0
  176. data/doc/rdoc/fr_class_index.html +60 -0
  177. data/doc/rdoc/fr_file_index.html +40 -0
  178. data/doc/rdoc/fr_method_index.html +149 -0
  179. data/doc/rdoc/index.html +24 -0
  180. data/doc/rdoc/rdoc-style.css +208 -0
  181. data/examples/builder.rb +29 -0
  182. data/examples/camping/blog.rb +11 -2
  183. data/examples/simpletest.rb +20 -7
  184. data/ext/http11/http11.c +71 -14
  185. data/ext/http11/http11_parser.c +27 -24
  186. data/ext/http11/http11_parser.h +2 -1
  187. data/lib/http11.bundle +0 -0
  188. data/lib/mongrel.rb +498 -135
  189. data/lib/mongrel/command.rb +1 -1
  190. data/lib/mongrel/debug.rb +259 -0
  191. data/lib/mongrel/handlers.rb +76 -22
  192. data/lib/mongrel/rails.rb +165 -72
  193. data/lib/mongrel/stats.rb +71 -0
  194. data/test/test_configurator.rb +67 -0
  195. data/test/test_debug.rb +31 -0
  196. data/test/test_http11.rb +16 -0
  197. data/test/test_response.rb +5 -0
  198. data/test/test_stats.rb +28 -0
  199. metadata +224 -2
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>open (IO)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel/debug.rb, line 105</span>
14
+ 105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">blk</span>)
15
+ 106: <span class="ruby-identifier">$open_files</span>[<span class="ruby-keyword kw">self</span>] = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">inspect</span>
16
+ 107: <span class="ruby-identifier">orig_open</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">blk</span>)
17
+ 108: <span class="ruby-keyword kw">end</span></pre>
18
+ </body>
19
+ </html>
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>close (IO)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel/debug.rb, line 110</span>
14
+ 110: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">blk</span>)
15
+ 111: <span class="ruby-identifier">$open_files</span>.<span class="ruby-identifier">delete</span> <span class="ruby-keyword kw">self</span>
16
+ 112: <span class="ruby-identifier">orig_close</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">blk</span>)
17
+ 113: <span class="ruby-keyword kw">end</span></pre>
18
+ </body>
19
+ </html>
@@ -0,0 +1,159 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: Kernel</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">Kernel</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/mongrel/debug_rb.html">
59
+ lib/mongrel/debug.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ </table>
66
+ </div>
67
+ <!-- banner header -->
68
+
69
+ <div id="bodyContent">
70
+
71
+
72
+
73
+ <div id="contextContent">
74
+
75
+
76
+
77
+ </div>
78
+
79
+ <div id="method-list">
80
+ <h3 class="section-bar">Methods</h3>
81
+
82
+ <div class="name-list">
83
+ <a href="#M000026">log_open_files</a>&nbsp;&nbsp;
84
+ <a href="#M000025">open</a>&nbsp;&nbsp;
85
+ </div>
86
+ </div>
87
+
88
+ </div>
89
+
90
+
91
+ <!-- if includes -->
92
+
93
+ <div id="section">
94
+
95
+
96
+
97
+ <div id="aliases-list">
98
+ <h3 class="section-bar">External Aliases</h3>
99
+
100
+ <div class="name-list">
101
+ <table summary="aliases">
102
+ <tr class="top-aligned-row context-row">
103
+ <td class="context-item-name">open</td>
104
+ <td>-></td>
105
+ <td class="context-item-value">orig_open</td>
106
+ </tr>
107
+ </table>
108
+ </div>
109
+ </div>
110
+
111
+
112
+
113
+
114
+
115
+ <!-- if method_list -->
116
+ <div id="methods">
117
+ <h3 class="section-bar">Public Instance methods</h3>
118
+
119
+ <div id="method-M000026" class="method-detail">
120
+ <a name="M000026"></a>
121
+
122
+ <div class="method-heading">
123
+ <a href="Kernel.src/M000026.html" target="Code" class="method-signature"
124
+ onclick="popupCode('Kernel.src/M000026.html');return false;">
125
+ <span class="method-name">log_open_files</span><span class="method-args">()</span>
126
+ </a>
127
+ </div>
128
+
129
+ <div class="method-description">
130
+ </div>
131
+ </div>
132
+
133
+ <div id="method-M000025" class="method-detail">
134
+ <a name="M000025"></a>
135
+
136
+ <div class="method-heading">
137
+ <a href="Kernel.src/M000025.html" target="Code" class="method-signature"
138
+ onclick="popupCode('Kernel.src/M000025.html');return false;">
139
+ <span class="method-name">open</span><span class="method-args">(*arg, &amp;blk)</span>
140
+ </a>
141
+ </div>
142
+
143
+ <div class="method-description">
144
+ </div>
145
+ </div>
146
+
147
+
148
+ </div>
149
+
150
+
151
+ </div>
152
+
153
+
154
+ <div id="validator-badges">
155
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
156
+ </div>
157
+
158
+ </body>
159
+ </html>
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>open (Kernel)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel/debug.rb, line 120</span>
14
+ 120: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">blk</span>)
15
+ 121: <span class="ruby-identifier">$open_files</span>[<span class="ruby-keyword kw">self</span>] = <span class="ruby-identifier">arg</span>[<span class="ruby-value">0</span>]
16
+ 122: <span class="ruby-identifier">orig_open</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">arg</span>,<span class="ruby-operator">&amp;</span><span class="ruby-identifier">blk</span>)
17
+ 123: <span class="ruby-keyword kw">end</span></pre>
18
+ </body>
19
+ </html>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>log_open_files (Kernel)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel/debug.rb, line 125</span>
14
+ 125: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">log_open_files</span>
15
+ 126: <span class="ruby-constant">Class</span>.<span class="ruby-identifier">stopit</span> <span class="ruby-keyword kw">do</span>
16
+ 127: <span class="ruby-identifier">open_counts</span> = {}
17
+ 128: <span class="ruby-identifier">$open_files</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span>,<span class="ruby-identifier">args</span><span class="ruby-operator">|</span>
18
+ 129: <span class="ruby-identifier">open_counts</span>[<span class="ruby-identifier">args</span>] <span class="ruby-operator">||=</span> <span class="ruby-value">0</span>
19
+ 130: <span class="ruby-identifier">open_counts</span>[<span class="ruby-identifier">args</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
20
+ 131: <span class="ruby-keyword kw">end</span>
21
+ 132: <span class="ruby-constant">MongrelDbg</span><span class="ruby-operator">::</span><span class="ruby-identifier">trace</span>(<span class="ruby-identifier">:files</span>, <span class="ruby-identifier">open_counts</span>.<span class="ruby-identifier">to_yaml</span>)
22
+ 133: <span class="ruby-keyword kw">end</span>
23
+ 134: <span class="ruby-keyword kw">end</span></pre>
24
+ </body>
25
+ </html>
@@ -0,0 +1,181 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: Mongrel</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">Mongrel</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/mongrel_rb.html">
59
+ lib/mongrel.rb
60
+ </a>
61
+ <br />
62
+ <a href="../files/lib/mongrel/camping_rb.html">
63
+ lib/mongrel/camping.rb
64
+ </a>
65
+ <br />
66
+ <a href="../files/lib/mongrel/cgi_rb.html">
67
+ lib/mongrel/cgi.rb
68
+ </a>
69
+ <br />
70
+ <a href="../files/lib/mongrel/command_rb.html">
71
+ lib/mongrel/command.rb
72
+ </a>
73
+ <br />
74
+ <a href="../files/lib/mongrel/handlers_rb.html">
75
+ lib/mongrel/handlers.rb
76
+ </a>
77
+ <br />
78
+ <a href="../files/lib/mongrel/rails_rb.html">
79
+ lib/mongrel/rails.rb
80
+ </a>
81
+ <br />
82
+ <a href="../files/ext/http11/http11_c.html">
83
+ ext/http11/http11.c
84
+ </a>
85
+ <br />
86
+ </td>
87
+ </tr>
88
+
89
+ </table>
90
+ </div>
91
+ <!-- banner header -->
92
+
93
+ <div id="bodyContent">
94
+
95
+
96
+
97
+ <div id="contextContent">
98
+
99
+ <div id="description">
100
+ <p>
101
+ <a href="Mongrel.html">Mongrel</a> module containing all of the classes
102
+ (include C extensions) for running a <a href="Mongrel.html">Mongrel</a> web
103
+ server. It contains a minimalist HTTP server with just enough functionality
104
+ to service web application requests fast as possible.
105
+ </p>
106
+
107
+ </div>
108
+
109
+
110
+ </div>
111
+
112
+
113
+ </div>
114
+
115
+
116
+ <!-- if includes -->
117
+
118
+ <div id="section">
119
+
120
+ <div id="class-list">
121
+ <h3 class="section-bar">Classes and Modules</h3>
122
+
123
+ Module <a href="Mongrel/Camping.html" class="link">Mongrel::Camping</a><br />
124
+ Module <a href="Mongrel/Command.html" class="link">Mongrel::Command</a><br />
125
+ Module <a href="Mongrel/Const.html" class="link">Mongrel::Const</a><br />
126
+ Module <a href="Mongrel/HttpHandlerPlugin.html" class="link">Mongrel::HttpHandlerPlugin</a><br />
127
+ Module <a href="Mongrel/Rails.html" class="link">Mongrel::Rails</a><br />
128
+ Class <a href="Mongrel/CGIWrapper.html" class="link">Mongrel::CGIWrapper</a><br />
129
+ Class <a href="Mongrel/Configurator.html" class="link">Mongrel::Configurator</a><br />
130
+ Class <a href="Mongrel/DirHandler.html" class="link">Mongrel::DirHandler</a><br />
131
+ Class <a href="Mongrel/Error404Handler.html" class="link">Mongrel::Error404Handler</a><br />
132
+ Class <a href="Mongrel/HeaderOut.html" class="link">Mongrel::HeaderOut</a><br />
133
+ Class <a href="Mongrel/HttpHandler.html" class="link">Mongrel::HttpHandler</a><br />
134
+ Class <a href="Mongrel/HttpParser.html" class="link">Mongrel::HttpParser</a><br />
135
+ Class <a href="Mongrel/HttpRequest.html" class="link">Mongrel::HttpRequest</a><br />
136
+ Class <a href="Mongrel/HttpResponse.html" class="link">Mongrel::HttpResponse</a><br />
137
+ Class <a href="Mongrel/HttpServer.html" class="link">Mongrel::HttpServer</a><br />
138
+ Class <a href="Mongrel/StopServer.html" class="link">Mongrel::StopServer</a><br />
139
+ Class <a href="Mongrel/URIClassifier.html" class="link">Mongrel::URIClassifier</a><br />
140
+
141
+ </div>
142
+
143
+ <div id="constants-list">
144
+ <h3 class="section-bar">Constants</h3>
145
+
146
+ <div class="name-list">
147
+ <table summary="Constants">
148
+ <tr class="top-aligned-row context-row">
149
+ <td class="context-item-name">HTTP_STATUS_CODES</td>
150
+ <td>=</td>
151
+ <td class="context-item-value">{ 100 =&gt; 'Continue', 101 =&gt; 'Switching Protocols', 200 =&gt; 'OK', 201 =&gt; 'Created', 202 =&gt; 'Accepted', 203 =&gt; 'Non-Authoritative Information', 204 =&gt; 'No Content', 205 =&gt; 'Reset Content', 206 =&gt; 'Partial Content', 300 =&gt; 'Multiple Choices', 301 =&gt; 'Moved Permanently', 302 =&gt; 'Moved Temporarily', 303 =&gt; 'See Other', 304 =&gt; 'Not Modified', 305 =&gt; 'Use Proxy', 400 =&gt; 'Bad Request', 401 =&gt; 'Unauthorized', 402 =&gt; 'Payment Required', 403 =&gt; 'Forbidden', 404 =&gt; 'Not Found', 405 =&gt; 'Method Not Allowed', 406 =&gt; 'Not Acceptable', 407 =&gt; 'Proxy Authentication Required', 408 =&gt; 'Request Time-out', 409 =&gt; 'Conflict', 410 =&gt; 'Gone', 411 =&gt; 'Length Required', 412 =&gt; 'Precondition Failed', 413 =&gt; 'Request Entity Too Large', 414 =&gt; 'Request-URI Too Large', 415 =&gt; 'Unsupported Media Type', 500 =&gt; 'Internal Server Error', 501 =&gt; 'Not Implemented', 502 =&gt; 'Bad Gateway', 503 =&gt; 'Service Unavailable', 504 =&gt; 'Gateway Time-out', 505 =&gt; 'HTTP Version not supported'</td>
152
+ <td width="3em">&nbsp;</td>
153
+ <td class="context-item-desc">
154
+ Every standard HTTP code mapped to the appropriate message. These are used
155
+ so frequently that they are placed directly in <a
156
+ href="Mongrel.html">Mongrel</a> for easy access rather than <a
157
+ href="Mongrel/Const.html">Mongrel::Const</a>.
158
+
159
+ </td>
160
+ </tr>
161
+ </table>
162
+ </div>
163
+ </div>
164
+
165
+
166
+
167
+
168
+
169
+
170
+ <!-- if method_list -->
171
+
172
+
173
+ </div>
174
+
175
+
176
+ <div id="validator-badges">
177
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
178
+ </div>
179
+
180
+ </body>
181
+ </html>
@@ -0,0 +1,383 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Mongrel::CGIWrapper</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Mongrel::CGIWrapper</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/mongrel/cgi_rb.html">
59
+ lib/mongrel/cgi.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ ::CGI
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ </div>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+
77
+
78
+
79
+ <div id="contextContent">
80
+
81
+ <div id="description">
82
+ <p>
83
+ The beginning of a complete wrapper around <a
84
+ href="../Mongrel.html">Mongrel</a>&#8217;s internal HTTP processing system
85
+ but maintaining the original Ruby CGI module. Use this only as a crutch to
86
+ get existing CGI based systems working. It should handle everything, but
87
+ please notify me if you see special warnings. This work is still very alpha
88
+ so I need testers to help work out the various corner cases.
89
+ </p>
90
+ <p>
91
+ The CGIWrapper.handler attribute is normally not set and is available for
92
+ frameworks that need to get back to the handler. <a
93
+ href="Rails.html">Rails</a> uses this to give people access to the
94
+ RailsHandler#files (<a href="DirHandler.html">DirHandler</a> really) so
95
+ they can look-up paths and do other things withthe files managed there.
96
+ </p>
97
+ <p>
98
+ In <a href="Rails.html">Rails</a> you can get the real file for a request
99
+ with:
100
+ </p>
101
+ <pre>
102
+ path = @request.cgi.handler.files.can_serve(@request['PATH_INFO'])
103
+ </pre>
104
+ <p>
105
+ Which is ugly but does the job. Feel free to write a <a
106
+ href="Rails.html">Rails</a> helper for that. Refer to <a
107
+ href="DirHandler.html#M000059">DirHandler#can_serve</a> for more
108
+ information on this.
109
+ </p>
110
+
111
+ </div>
112
+
113
+
114
+ </div>
115
+
116
+ <div id="method-list">
117
+ <h3 class="section-bar">Methods</h3>
118
+
119
+ <div class="name-list">
120
+ <a href="#M000095">args</a>&nbsp;&nbsp;
121
+ <a href="#M000096">env_table</a>&nbsp;&nbsp;
122
+ <a href="#M000091">header</a>&nbsp;&nbsp;
123
+ <a href="#M000090">new</a>&nbsp;&nbsp;
124
+ <a href="#M000093">out</a>&nbsp;&nbsp;
125
+ <a href="#M000092">send_cookies</a>&nbsp;&nbsp;
126
+ <a href="#M000094">status</a>&nbsp;&nbsp;
127
+ <a href="#M000097">stdinput</a>&nbsp;&nbsp;
128
+ <a href="#M000098">stdoutput</a>&nbsp;&nbsp;
129
+ </div>
130
+ </div>
131
+
132
+ </div>
133
+
134
+
135
+ <!-- if includes -->
136
+
137
+ <div id="section">
138
+
139
+
140
+ <div id="constants-list">
141
+ <h3 class="section-bar">Constants</h3>
142
+
143
+ <div class="name-list">
144
+ <table summary="Constants">
145
+ <tr class="top-aligned-row context-row">
146
+ <td class="context-item-name">REMOVED_KEYS</td>
147
+ <td>=</td>
148
+ <td class="context-item-value">[ &quot;nph&quot;,&quot;status&quot;,&quot;server&quot;,&quot;connection&quot;,&quot;type&quot;, &quot;charset&quot;,&quot;length&quot;,&quot;language&quot;,&quot;expires&quot;]</td>
149
+ <td width="3em">&nbsp;</td>
150
+ <td class="context-item-desc">
151
+ these are stripped out of any keys passed to <a
152
+ href="CGIWrapper.html#M000091">CGIWrapper.header</a> function
153
+
154
+ </td>
155
+ </tr>
156
+ </table>
157
+ </div>
158
+ </div>
159
+
160
+
161
+
162
+ <div id="attribute-list">
163
+ <h3 class="section-bar">Attributes</h3>
164
+
165
+ <div class="name-list">
166
+ <table>
167
+ <tr class="top-aligned-row context-row">
168
+ <td class="context-item-name">handler</td>
169
+ <td class="context-item-value">&nbsp;[W]&nbsp;</td>
170
+ <td class="context-item-desc"></td>
171
+ </tr>
172
+ <tr class="top-aligned-row context-row">
173
+ <td class="context-item-name">handler</td>
174
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
175
+ <td class="context-item-desc"></td>
176
+ </tr>
177
+ <tr class="top-aligned-row context-row">
178
+ <td class="context-item-name">options</td>
179
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
180
+ <td class="context-item-desc"></td>
181
+ </tr>
182
+ </table>
183
+ </div>
184
+ </div>
185
+
186
+
187
+
188
+ <!-- if method_list -->
189
+ <div id="methods">
190
+ <h3 class="section-bar">Public Class methods</h3>
191
+
192
+ <div id="method-M000090" class="method-detail">
193
+ <a name="M000090"></a>
194
+
195
+ <div class="method-heading">
196
+ <a href="CGIWrapper.src/M000090.html" target="Code" class="method-signature"
197
+ onclick="popupCode('CGIWrapper.src/M000090.html');return false;">
198
+ <span class="method-name">new</span><span class="method-args">(request, response, *args)</span>
199
+ </a>
200
+ </div>
201
+
202
+ <div class="method-description">
203
+ <p>
204
+ Takes an <a href="HttpRequest.html">HttpRequest</a> and <a
205
+ href="HttpResponse.html">HttpResponse</a> object, plus any additional
206
+ arguments normally passed to CGI. These are used internally to create a
207
+ wrapper around the real CGI while maintaining <a
208
+ href="../Mongrel.html">Mongrel</a>&#8217;s view of the world.
209
+ </p>
210
+ </div>
211
+ </div>
212
+
213
+ <h3 class="section-bar">Public Instance methods</h3>
214
+
215
+ <div id="method-M000095" class="method-detail">
216
+ <a name="M000095"></a>
217
+
218
+ <div class="method-heading">
219
+ <a href="CGIWrapper.src/M000095.html" target="Code" class="method-signature"
220
+ onclick="popupCode('CGIWrapper.src/M000095.html');return false;">
221
+ <span class="method-name">args</span><span class="method-args">()</span>
222
+ </a>
223
+ </div>
224
+
225
+ <div class="method-description">
226
+ <p>
227
+ Used to wrap the normal args variable used inside CGI.
228
+ </p>
229
+ </div>
230
+ </div>
231
+
232
+ <div id="method-M000096" class="method-detail">
233
+ <a name="M000096"></a>
234
+
235
+ <div class="method-heading">
236
+ <a href="CGIWrapper.src/M000096.html" target="Code" class="method-signature"
237
+ onclick="popupCode('CGIWrapper.src/M000096.html');return false;">
238
+ <span class="method-name">env_table</span><span class="method-args">()</span>
239
+ </a>
240
+ </div>
241
+
242
+ <div class="method-description">
243
+ <p>
244
+ Used to wrap the normal <a href="CGIWrapper.html#M000096">env_table</a>
245
+ variable used inside CGI.
246
+ </p>
247
+ </div>
248
+ </div>
249
+
250
+ <div id="method-M000091" class="method-detail">
251
+ <a name="M000091"></a>
252
+
253
+ <div class="method-heading">
254
+ <a href="CGIWrapper.src/M000091.html" target="Code" class="method-signature"
255
+ onclick="popupCode('CGIWrapper.src/M000091.html');return false;">
256
+ <span class="method-name">header</span><span class="method-args">(options = &quot;text/html&quot;)</span>
257
+ </a>
258
+ </div>
259
+
260
+ <div class="method-description">
261
+ <p>
262
+ The header is typically called to send back the header. In our case we
263
+ collect it into a hash for later usage.
264
+ </p>
265
+ <p>
266
+ nph &#8212; Mostly ignored. It&#8216;ll output the date. connection &#8212;
267
+ Completely ignored. Why is CGI doing this? length &#8212; Ignored since <a
268
+ href="../Mongrel.html">Mongrel</a> figures this out from what you write to
269
+ output.
270
+ </p>
271
+ </div>
272
+ </div>
273
+
274
+ <div id="method-M000093" class="method-detail">
275
+ <a name="M000093"></a>
276
+
277
+ <div class="method-heading">
278
+ <a href="CGIWrapper.src/M000093.html" target="Code" class="method-signature"
279
+ onclick="popupCode('CGIWrapper.src/M000093.html');return false;">
280
+ <span class="method-name">out</span><span class="method-args">(options = &quot;text/html&quot;) {||| &quot;&quot;)| ...}</span>
281
+ </a>
282
+ </div>
283
+
284
+ <div class="method-description">
285
+ <p>
286
+ The dumb thing is people can call header or this or both and in any order.
287
+ So, we just reuse header and then finalize the <a
288
+ href="HttpResponse.html">HttpResponse</a> the right way. Status is taken
289
+ from the various options and converted to what <a
290
+ href="../Mongrel.html">Mongrel</a> needs via the <a
291
+ href="CGIWrapper.html#M000094">CGIWrapper.status</a> function.
292
+ </p>
293
+ </div>
294
+ </div>
295
+
296
+ <div id="method-M000092" class="method-detail">
297
+ <a name="M000092"></a>
298
+
299
+ <div class="method-heading">
300
+ <a href="CGIWrapper.src/M000092.html" target="Code" class="method-signature"
301
+ onclick="popupCode('CGIWrapper.src/M000092.html');return false;">
302
+ <span class="method-name">send_cookies</span><span class="method-args">(to)</span>
303
+ </a>
304
+ </div>
305
+
306
+ <div class="method-description">
307
+ <p>
308
+ Takes any &#8216;cookie&#8217; setting and sends it over the <a
309
+ href="../Mongrel.html">Mongrel</a> header, then removes the setting from
310
+ the options. If cookie is an Array or Hash then it sends those on with
311
+ .to_s, otherwise it just calls .to_s on it and hopefully your
312
+ &quot;cookie&quot; can write itself correctly.
313
+ </p>
314
+ </div>
315
+ </div>
316
+
317
+ <div id="method-M000094" class="method-detail">
318
+ <a name="M000094"></a>
319
+
320
+ <div class="method-heading">
321
+ <a href="CGIWrapper.src/M000094.html" target="Code" class="method-signature"
322
+ onclick="popupCode('CGIWrapper.src/M000094.html');return false;">
323
+ <span class="method-name">status</span><span class="method-args">()</span>
324
+ </a>
325
+ </div>
326
+
327
+ <div class="method-description">
328
+ <p>
329
+ Computes the status once, but lazily so that people who call header twice
330
+ don&#8217;t get penalized. Because CGI insists on including the options
331
+ status message in the status we have to do a bit of parsing.
332
+ </p>
333
+ </div>
334
+ </div>
335
+
336
+ <div id="method-M000097" class="method-detail">
337
+ <a name="M000097"></a>
338
+
339
+ <div class="method-heading">
340
+ <a href="CGIWrapper.src/M000097.html" target="Code" class="method-signature"
341
+ onclick="popupCode('CGIWrapper.src/M000097.html');return false;">
342
+ <span class="method-name">stdinput</span><span class="method-args">()</span>
343
+ </a>
344
+ </div>
345
+
346
+ <div class="method-description">
347
+ <p>
348
+ Used to wrap the normal stdinput variable used inside CGI.
349
+ </p>
350
+ </div>
351
+ </div>
352
+
353
+ <div id="method-M000098" class="method-detail">
354
+ <a name="M000098"></a>
355
+
356
+ <div class="method-heading">
357
+ <a href="CGIWrapper.src/M000098.html" target="Code" class="method-signature"
358
+ onclick="popupCode('CGIWrapper.src/M000098.html');return false;">
359
+ <span class="method-name">stdoutput</span><span class="method-args">()</span>
360
+ </a>
361
+ </div>
362
+
363
+ <div class="method-description">
364
+ <p>
365
+ The stdoutput should be completely bypassed but we&#8217;ll drop a warning
366
+ just in case
367
+ </p>
368
+ </div>
369
+ </div>
370
+
371
+
372
+ </div>
373
+
374
+
375
+ </div>
376
+
377
+
378
+ <div id="validator-badges">
379
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
380
+ </div>
381
+
382
+ </body>
383
+ </html>