mongrel 0.3.13.4 → 1.0

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 (256) hide show
  1. data/README +1 -75
  2. data/Rakefile +14 -14
  3. data/bin/mongrel_rails +35 -23
  4. data/doc/rdoc/classes/IO.html +12 -12
  5. data/doc/rdoc/classes/IO.src/{M000001.html → M000003.html} +0 -0
  6. data/doc/rdoc/classes/IO.src/{M000002.html → M000004.html} +0 -0
  7. data/doc/rdoc/classes/Kernel.html +11 -11
  8. data/doc/rdoc/classes/Kernel.src/{M000010.html → M000012.html} +0 -0
  9. data/doc/rdoc/classes/Kernel.src/{M000011.html → M000013.html} +0 -0
  10. data/doc/rdoc/classes/Mongrel.html +3 -3
  11. data/doc/rdoc/classes/Mongrel/CGIWrapper.html +77 -69
  12. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000115.html +12 -19
  13. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000116.html +34 -12
  14. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000117.html +21 -5
  15. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000118.html +19 -5
  16. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000119.html +12 -5
  17. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000120.html +5 -6
  18. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000121.html +18 -0
  19. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000122.html +18 -0
  20. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000123.html +19 -0
  21. data/doc/rdoc/classes/Mongrel/Camping.html +8 -8
  22. data/doc/rdoc/classes/Mongrel/Camping.src/M000041.html +22 -0
  23. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.html +31 -12
  24. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000042.html +20 -0
  25. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000043.html +58 -0
  26. data/doc/rdoc/classes/Mongrel/Command/Base.html +75 -73
  27. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000018.html +11 -5
  28. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000019.html +29 -5
  29. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000020.html +5 -5
  30. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000021.html +5 -5
  31. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000022.html +5 -9
  32. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000023.html +5 -5
  33. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000024.html +9 -5
  34. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000025.html +5 -5
  35. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000026.html +5 -11
  36. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000027.html +5 -11
  37. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000028.html +11 -5
  38. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000029.html +24 -0
  39. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000030.html +18 -0
  40. data/doc/rdoc/classes/Mongrel/Command/Registry.html +20 -20
  41. data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000031.html +7 -45
  42. data/doc/rdoc/classes/Mongrel/Command/Registry.src/{M000030.html → M000032.html} +0 -0
  43. data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000033.html +58 -0
  44. data/doc/rdoc/classes/Mongrel/Configurator.html +163 -140
  45. data/doc/rdoc/classes/Mongrel/Configurator.src/M000093.html +14 -8
  46. data/doc/rdoc/classes/Mongrel/Configurator.src/M000094.html +18 -7
  47. data/doc/rdoc/classes/Mongrel/Configurator.src/M000095.html +5 -10
  48. data/doc/rdoc/classes/Mongrel/Configurator.src/M000096.html +8 -5
  49. data/doc/rdoc/classes/Mongrel/Configurator.src/M000097.html +7 -25
  50. data/doc/rdoc/classes/Mongrel/Configurator.src/M000098.html +10 -6
  51. data/doc/rdoc/classes/Mongrel/Configurator.src/M000099.html +5 -26
  52. data/doc/rdoc/classes/Mongrel/Configurator.src/M000100.html +25 -20
  53. data/doc/rdoc/classes/Mongrel/Configurator.src/M000101.html +6 -5
  54. data/doc/rdoc/classes/Mongrel/Configurator.src/M000102.html +26 -11
  55. data/doc/rdoc/classes/Mongrel/Configurator.src/M000103.html +20 -6
  56. data/doc/rdoc/classes/Mongrel/Configurator.src/M000104.html +5 -5
  57. data/doc/rdoc/classes/Mongrel/Configurator.src/M000105.html +11 -9
  58. data/doc/rdoc/classes/Mongrel/Configurator.src/M000106.html +6 -9
  59. data/doc/rdoc/classes/Mongrel/Configurator.src/M000107.html +5 -5
  60. data/doc/rdoc/classes/Mongrel/Configurator.src/M000108.html +9 -21
  61. data/doc/rdoc/classes/Mongrel/Configurator.src/M000109.html +9 -5
  62. data/doc/rdoc/classes/Mongrel/Configurator.src/M000110.html +5 -23
  63. data/doc/rdoc/classes/Mongrel/Configurator.src/M000111.html +21 -5
  64. data/doc/rdoc/classes/Mongrel/Configurator.src/M000112.html +18 -0
  65. data/doc/rdoc/classes/Mongrel/Configurator.src/M000113.html +36 -0
  66. data/doc/rdoc/classes/Mongrel/Configurator.src/M000114.html +18 -0
  67. data/doc/rdoc/classes/Mongrel/Const.html +8 -9
  68. data/doc/rdoc/classes/Mongrel/DeflateFilter.html +19 -12
  69. data/doc/rdoc/classes/Mongrel/DeflateFilter.src/{M000121.html → M000124.html} +5 -5
  70. data/doc/rdoc/classes/Mongrel/DeflateFilter.src/{M000122.html → M000125.html} +9 -14
  71. data/doc/rdoc/classes/Mongrel/DirHandler.html +43 -43
  72. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000051.html +8 -25
  73. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000052.html +29 -50
  74. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000053.html +25 -26
  75. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000054.html +52 -5
  76. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000055.html +39 -0
  77. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000056.html +18 -0
  78. data/doc/rdoc/classes/Mongrel/Error404Handler.html +11 -11
  79. data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000123.html → M000126.html} +4 -4
  80. data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000124.html → M000127.html} +4 -4
  81. data/doc/rdoc/classes/Mongrel/HeaderOut.html +15 -10
  82. data/doc/rdoc/classes/Mongrel/HeaderOut.src/M000066.html +21 -0
  83. data/doc/rdoc/classes/Mongrel/HeaderOut.src/M000067.html +21 -0
  84. data/doc/rdoc/classes/Mongrel/HttpHandler.html +25 -23
  85. data/doc/rdoc/classes/Mongrel/HttpHandler.src/M000072.html +4 -4
  86. data/doc/rdoc/classes/Mongrel/HttpHandler.src/{M000071.html → M000073.html} +3 -3
  87. data/doc/rdoc/classes/Mongrel/{HttpHandlerPlugin.src/M000012.html → HttpHandler.src/M000074.html} +4 -4
  88. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.html +22 -21
  89. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000014.html +4 -6
  90. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000015.html +4 -4
  91. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000016.html +19 -0
  92. data/doc/rdoc/classes/Mongrel/{HttpHandler.src/M000070.html → HttpHandlerPlugin.src/M000017.html} +4 -4
  93. data/doc/rdoc/classes/Mongrel/HttpParser.html +44 -42
  94. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000044.html +6 -7
  95. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000045.html +7 -37
  96. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000046.html +7 -5
  97. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000047.html +37 -5
  98. data/doc/rdoc/classes/Mongrel/HttpParser.src/M000048.html +5 -6
  99. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000042.html → M000049.html} +5 -6
  100. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000043.html → M000050.html} +6 -7
  101. data/doc/rdoc/classes/Mongrel/HttpRequest.html +37 -40
  102. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000133.html +37 -7
  103. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000134.html +28 -7
  104. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000135.html +16 -19
  105. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000136.html +20 -0
  106. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000137.html +20 -0
  107. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000138.html +32 -0
  108. data/doc/rdoc/classes/Mongrel/HttpResponse.html +95 -85
  109. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000075.html +12 -13
  110. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000076.html +7 -9
  111. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000077.html +13 -9
  112. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000078.html +9 -9
  113. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000079.html +9 -18
  114. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000080.html +9 -8
  115. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000081.html +18 -7
  116. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000082.html +8 -7
  117. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000083.html +7 -7
  118. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000084.html +7 -5
  119. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000085.html +20 -0
  120. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000086.html +18 -0
  121. data/doc/rdoc/classes/Mongrel/HttpServer.html +59 -63
  122. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000057.html +12 -19
  123. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000058.html +87 -8
  124. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000059.html +19 -9
  125. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000060.html +8 -49
  126. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000061.html +16 -21
  127. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000062.html +52 -5
  128. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000063.html +21 -9
  129. data/doc/rdoc/classes/Mongrel/{HeaderOut.src → HttpServer.src}/M000064.html +5 -5
  130. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000065.html +22 -0
  131. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.html +27 -25
  132. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000034.html +24 -13
  133. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/{M000033.html → M000035.html} +11 -11
  134. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000036.html +26 -0
  135. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.html +24 -26
  136. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000037.html +10 -8
  137. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000038.html +43 -12
  138. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000039.html +20 -0
  139. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000040.html +25 -0
  140. data/doc/rdoc/classes/Mongrel/RedirectHandler.html +10 -10
  141. data/doc/rdoc/classes/Mongrel/RedirectHandler.src/{M000128.html → M000131.html} +8 -8
  142. data/doc/rdoc/classes/Mongrel/RedirectHandler.src/{M000129.html → M000132.html} +13 -13
  143. data/doc/rdoc/classes/Mongrel/StatisticsFilter.html +20 -20
  144. data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/{M000125.html → M000128.html} +10 -10
  145. data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/{M000126.html → M000129.html} +10 -10
  146. data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/{M000127.html → M000130.html} +4 -4
  147. data/doc/rdoc/classes/Mongrel/Stats.html +43 -42
  148. data/doc/rdoc/classes/Mongrel/Stats.src/M000139.html +6 -5
  149. data/doc/rdoc/classes/Mongrel/Stats.src/M000140.html +10 -5
  150. data/doc/rdoc/classes/Mongrel/Stats.src/M000141.html +13 -5
  151. data/doc/rdoc/classes/Mongrel/Stats.src/M000142.html +5 -10
  152. data/doc/rdoc/classes/Mongrel/Stats.src/M000143.html +5 -7
  153. data/doc/rdoc/classes/Mongrel/Stats.src/{M000136.html → M000144.html} +5 -6
  154. data/doc/rdoc/classes/Mongrel/Stats.src/M000145.html +23 -0
  155. data/doc/rdoc/classes/Mongrel/Stats.src/M000146.html +20 -0
  156. data/doc/rdoc/classes/Mongrel/StatusHandler.html +21 -21
  157. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000068.html +5 -29
  158. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000069.html +11 -7
  159. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000070.html +42 -0
  160. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000071.html +20 -0
  161. data/doc/rdoc/classes/Mongrel/URIClassifier.html +58 -55
  162. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000087.html +5 -26
  163. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000088.html +5 -38
  164. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000089.html +18 -15
  165. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000090.html +25 -57
  166. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000091.html +36 -0
  167. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000092.html +83 -0
  168. data/doc/rdoc/classes/MongrelDbg.html +25 -25
  169. data/doc/rdoc/classes/MongrelDbg.src/M000007.html +11 -9
  170. data/doc/rdoc/classes/MongrelDbg.src/M000008.html +7 -8
  171. data/doc/rdoc/classes/MongrelDbg.src/M000009.html +9 -5
  172. data/doc/rdoc/classes/MongrelDbg.src/M000010.html +21 -0
  173. data/doc/rdoc/classes/MongrelDbg.src/M000011.html +18 -0
  174. data/doc/rdoc/classes/{Sync.html → Mutex.html} +50 -19
  175. data/doc/rdoc/classes/Mutex.src/M000001.html +24 -0
  176. data/doc/rdoc/classes/Mutex.src/M000002.html +32 -0
  177. data/doc/rdoc/classes/RequestLog/Access.html +5 -5
  178. data/doc/rdoc/classes/RequestLog/Access.src/{M000144.html → M000147.html} +0 -0
  179. data/doc/rdoc/classes/RequestLog/Files.html +5 -5
  180. data/doc/rdoc/classes/RequestLog/Files.src/{M000145.html → M000148.html} +0 -0
  181. data/doc/rdoc/classes/RequestLog/Objects.html +5 -5
  182. data/doc/rdoc/classes/RequestLog/Objects.src/{M000147.html → M000150.html} +0 -0
  183. data/doc/rdoc/classes/RequestLog/Params.html +5 -5
  184. data/doc/rdoc/classes/RequestLog/Params.src/{M000148.html → M000151.html} +0 -0
  185. data/doc/rdoc/classes/RequestLog/Threads.html +5 -5
  186. data/doc/rdoc/classes/RequestLog/Threads.src/{M000146.html → M000149.html} +0 -0
  187. data/doc/rdoc/classes/TCPServer.html +10 -10
  188. data/doc/rdoc/classes/TCPServer.src/{M000003.html → M000005.html} +0 -0
  189. data/doc/rdoc/created.rid +1 -1
  190. data/doc/rdoc/files/COPYING.html +1 -1
  191. data/doc/rdoc/files/LICENSE.html +1 -1
  192. data/doc/rdoc/files/README.html +11 -100
  193. data/doc/rdoc/files/ext/http11/http11_c.html +1 -1
  194. data/doc/rdoc/files/lib/mongrel/camping_rb.html +2 -2
  195. data/doc/rdoc/files/lib/mongrel/cgi_rb.html +2 -2
  196. data/doc/rdoc/files/lib/mongrel/command_rb.html +2 -2
  197. data/doc/rdoc/files/lib/mongrel/configurator_rb.html +1 -1
  198. data/doc/rdoc/files/lib/mongrel/debug_rb.html +2 -2
  199. data/doc/rdoc/files/lib/mongrel/handlers_rb.html +3 -2
  200. data/doc/rdoc/files/lib/mongrel/init_rb.html +2 -2
  201. data/doc/rdoc/files/lib/mongrel/rails_rb.html +2 -3
  202. data/doc/rdoc/files/lib/mongrel/stats_rb.html +2 -2
  203. data/doc/rdoc/files/lib/mongrel/tcphack_rb.html +2 -2
  204. data/doc/rdoc/files/lib/mongrel_rb.html +5 -3
  205. data/doc/rdoc/files/lib/mutex_fix_rb.html +108 -0
  206. data/doc/rdoc/fr_class_index.html +1 -1
  207. data/doc/rdoc/fr_file_index.html +1 -0
  208. data/doc/rdoc/fr_method_index.html +151 -148
  209. data/ext/http11/http11.c +2 -2
  210. data/lib/mongrel.rb +85 -38
  211. data/lib/mongrel/camping.rb +17 -4
  212. data/lib/mongrel/configurator.rb +11 -7
  213. data/lib/mongrel/handlers.rb +30 -27
  214. data/lib/mongrel/mime_types.yml +615 -0
  215. data/lib/mongrel/rails.rb +21 -28
  216. data/lib/mutex_fix.rb +34 -0
  217. data/test/test_handlers.rb +16 -4
  218. data/test/test_http11.rb +8 -0
  219. data/test/test_request_progress.rb +45 -2
  220. data/test/test_response.rb +31 -0
  221. metadata +95 -71
  222. data/bin/mongrel_rails_service +0 -246
  223. data/bin/mongrel_rails_svc +0 -307
  224. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000112.html +0 -25
  225. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000113.html +0 -47
  226. data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000114.html +0 -34
  227. data/doc/rdoc/classes/Mongrel/Camping.src/M000039.html +0 -22
  228. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000040.html +0 -18
  229. data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000041.html +0 -51
  230. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000016.html +0 -24
  231. data/doc/rdoc/classes/Mongrel/Command/Base.src/M000017.html +0 -42
  232. data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000029.html +0 -20
  233. data/doc/rdoc/classes/Mongrel/Configurator.src/M000091.html +0 -27
  234. data/doc/rdoc/classes/Mongrel/Configurator.src/M000092.html +0 -31
  235. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000049.html +0 -21
  236. data/doc/rdoc/classes/Mongrel/DirHandler.src/M000050.html +0 -43
  237. data/doc/rdoc/classes/Mongrel/HeaderOut.src/M000065.html +0 -18
  238. data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000013.html +0 -17
  239. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000130.html +0 -47
  240. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000131.html +0 -37
  241. data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000132.html +0 -29
  242. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000073.html +0 -25
  243. data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000074.html +0 -20
  244. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000055.html +0 -25
  245. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000056.html +0 -91
  246. data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000032.html +0 -37
  247. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000035.html +0 -23
  248. data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000036.html +0 -54
  249. data/doc/rdoc/classes/Mongrel/Stats.src/M000137.html +0 -23
  250. data/doc/rdoc/classes/Mongrel/Stats.src/M000138.html +0 -26
  251. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000066.html +0 -18
  252. data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000067.html +0 -24
  253. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000085.html +0 -18
  254. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000086.html +0 -18
  255. data/doc/rdoc/classes/MongrelDbg.src/M000005.html +0 -24
  256. data/doc/rdoc/classes/MongrelDbg.src/M000006.html +0 -20
@@ -5,14 +5,28 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>env_table (Mongrel::CGIWrapper)</title>
8
+ <title>out (Mongrel::CGIWrapper)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/mongrel/cgi.rb, line 165</span>
14
- 165: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">env_table</span>
15
- 166: <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">params</span>
16
- 167: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel/cgi.rb, line 127</span>
14
+ 127: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">out</span>(<span class="ruby-identifier">options</span> = <span class="ruby-value str">&quot;text/html&quot;</span>, <span class="ruby-identifier">really_final</span>=<span class="ruby-ivar">@default_really_final</span>)
15
+ 128: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@out_called</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-identifier">really_final</span>
16
+ 129: <span class="ruby-comment cmt"># don't do it more than once or if it's not the really final call</span>
17
+ 130: <span class="ruby-keyword kw">return</span>
18
+ 131: <span class="ruby-keyword kw">end</span>
19
+ 132:
20
+ 133: <span class="ruby-identifier">header</span>(<span class="ruby-identifier">options</span>)
21
+ 134:
22
+ 135: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">start</span> <span class="ruby-identifier">status</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">head</span>, <span class="ruby-identifier">body</span><span class="ruby-operator">|</span>
23
+ 136: <span class="ruby-identifier">send_cookies</span>(<span class="ruby-identifier">head</span>)
24
+ 137:
25
+ 138: <span class="ruby-ivar">@head</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">head</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>}
26
+ 139: <span class="ruby-identifier">body</span>.<span class="ruby-identifier">write</span>(<span class="ruby-keyword kw">yield</span> <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;&quot;</span>)
27
+ 140: <span class="ruby-keyword kw">end</span>
28
+ 141:
29
+ 142: <span class="ruby-ivar">@out_called</span> = <span class="ruby-keyword kw">true</span>
30
+ 143: <span class="ruby-keyword kw">end</span></pre>
17
31
  </body>
18
32
  </html>
@@ -5,14 +5,21 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>stdinput (Mongrel::CGIWrapper)</title>
8
+ <title>status (Mongrel::CGIWrapper)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/mongrel/cgi.rb, line 170</span>
14
- 170: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stdinput</span>
15
- 171: <span class="ruby-ivar">@input</span>
16
- 172: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel/cgi.rb, line 148</span>
14
+ 148: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">status</span>
15
+ 149: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@status</span>
16
+ 150: <span class="ruby-identifier">stat</span> = <span class="ruby-ivar">@head</span>[<span class="ruby-value str">&quot;Status&quot;</span>]
17
+ 151: <span class="ruby-identifier">stat</span> = <span class="ruby-identifier">stat</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">' '</span>)[<span class="ruby-value">0</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">stat</span>
18
+ 152:
19
+ 153: <span class="ruby-ivar">@status</span> = <span class="ruby-identifier">stat</span> <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;200&quot;</span>
20
+ 154: <span class="ruby-keyword kw">end</span>
21
+ 155:
22
+ 156: <span class="ruby-ivar">@status</span>
23
+ 157: <span class="ruby-keyword kw">end</span></pre>
17
24
  </body>
18
25
  </html>
@@ -5,15 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>stdoutput (Mongrel::CGIWrapper)</title>
8
+ <title>args (Mongrel::CGIWrapper)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/mongrel/cgi.rb, line 175</span>
14
- 175: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stdoutput</span>
15
- 176: <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;WARNING: Your program is doing something not expected. Please tell Zed that stdoutput was used and what software you are running. Thanks.&quot;</span>
16
- 177: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">body</span>
17
- 178: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel/cgi.rb, line 160</span>
14
+ 160: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">args</span>
15
+ 161: <span class="ruby-ivar">@args</span>
16
+ 162: <span class="ruby-keyword kw">end</span></pre>
18
17
  </body>
19
18
  </html>
@@ -0,0 +1,18 @@
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>env_table (Mongrel::CGIWrapper)</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/cgi.rb, line 165</span>
14
+ 165: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">env_table</span>
15
+ 166: <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">params</span>
16
+ 167: <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
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>stdinput (Mongrel::CGIWrapper)</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/cgi.rb, line 170</span>
14
+ 170: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stdinput</span>
15
+ 171: <span class="ruby-ivar">@input</span>
16
+ 172: <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </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>stdoutput (Mongrel::CGIWrapper)</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/cgi.rb, line 175</span>
14
+ 175: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stdoutput</span>
15
+ 176: <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;WARNING: Your program is doing something not expected. Please tell Zed that stdoutput was used and what software you are running. Thanks.&quot;</span>
16
+ 177: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">body</span>
17
+ 178: <span class="ruby-keyword kw">end</span></pre>
18
+ </body>
19
+ </html>
@@ -97,8 +97,8 @@ instead and do your own wiring:
97
97
  h.register(&quot;/favicon.ico&quot;, Mongrel::Error404Handler.new(&quot;&quot;))
98
98
  </pre>
99
99
  <p>
100
- I add the /favicon.ico since camping apps typically don&#8217;t have them
101
- and it&#8217;s just annoying anyway.
100
+ I add the /favicon.ico since camping apps typically don&#8216;t have them
101
+ and it&#8216;s just annoying anyway.
102
102
  </p>
103
103
 
104
104
  </div>
@@ -110,7 +110,7 @@ and it&#8217;s just annoying anyway.
110
110
  <h3 class="section-bar">Methods</h3>
111
111
 
112
112
  <div class="name-list">
113
- <a href="#M000039">start</a>&nbsp;&nbsp;
113
+ <a href="#M000041">start</a>&nbsp;&nbsp;
114
114
  </div>
115
115
  </div>
116
116
 
@@ -138,12 +138,12 @@ and it&#8217;s just annoying anyway.
138
138
  <div id="methods">
139
139
  <h3 class="section-bar">Public Class methods</h3>
140
140
 
141
- <div id="method-M000039" class="method-detail">
142
- <a name="M000039"></a>
141
+ <div id="method-M000041" class="method-detail">
142
+ <a name="M000041"></a>
143
143
 
144
144
  <div class="method-heading">
145
- <a href="Camping.src/M000039.html" target="Code" class="method-signature"
146
- onclick="popupCode('Camping.src/M000039.html');return false;">
145
+ <a href="Camping.src/M000041.html" target="Code" class="method-signature"
146
+ onclick="popupCode('Camping.src/M000041.html');return false;">
147
147
  <span class="method-name">start</span><span class="method-args">(server, port, uri, klass)</span>
148
148
  </a>
149
149
  </div>
@@ -152,7 +152,7 @@ and it&#8217;s just annoying anyway.
152
152
  <p>
153
153
  This is a convenience method that wires up a <a
154
154
  href="Camping/CampingHandler.html">CampingHandler</a> for your application
155
- on a given port and uri. It&#8217;s pretty much all you need for a camping
155
+ on a given port and uri. It&#8216;s pretty much all you need for a camping
156
156
  application to work right.
157
157
  </p>
158
158
  <p>
@@ -0,0 +1,22 @@
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>start (Mongrel::Camping)</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/camping.rb, line 99</span>
14
+ 99: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Camping</span>.<span class="ruby-identifier">start</span>(<span class="ruby-identifier">server</span>, <span class="ruby-identifier">port</span>, <span class="ruby-identifier">uri</span>, <span class="ruby-identifier">klass</span>)
15
+ 100: <span class="ruby-identifier">h</span> = <span class="ruby-constant">Mongrel</span><span class="ruby-operator">::</span><span class="ruby-constant">HttpServer</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">server</span>, <span class="ruby-identifier">port</span>)
16
+ 101: <span class="ruby-identifier">h</span>.<span class="ruby-identifier">register</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-constant">CampingHandler</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">klass</span>))
17
+ 102: <span class="ruby-identifier">h</span>.<span class="ruby-identifier">register</span>(<span class="ruby-value str">&quot;/favicon.ico&quot;</span>, <span class="ruby-constant">Mongrel</span><span class="ruby-operator">::</span><span class="ruby-constant">Error404Handler</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;&quot;</span>))
18
+ 103: <span class="ruby-identifier">h</span>.<span class="ruby-identifier">run</span>
19
+ 104: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">h</span>
20
+ 105: <span class="ruby-keyword kw">end</span></pre>
21
+ </body>
22
+ </html>
@@ -83,8 +83,9 @@
83
83
  <div id="description">
84
84
  <p>
85
85
  This is a specialized handler for <a href="../Camping.html">Camping</a>
86
- applications that has them process the request and then translates the
87
- results into something the <a
86
+ applications that has them <a
87
+ href="CampingHandler.html#M000043">process</a> the request and then
88
+ translates the results into something the <a
88
89
  href="../HttpResponse.html">Mongrel::HttpResponse</a> needs.
89
90
  </p>
90
91
 
@@ -97,8 +98,8 @@ href="../HttpResponse.html">Mongrel::HttpResponse</a> needs.
97
98
  <h3 class="section-bar">Methods</h3>
98
99
 
99
100
  <div class="name-list">
100
- <a href="#M000040">new</a>&nbsp;&nbsp;
101
- <a href="#M000041">process</a>&nbsp;&nbsp;
101
+ <a href="#M000042">new</a>&nbsp;&nbsp;
102
+ <a href="#M000043">process</a>&nbsp;&nbsp;
102
103
  </div>
103
104
  </div>
104
105
 
@@ -113,6 +114,24 @@ href="../HttpResponse.html">Mongrel::HttpResponse</a> needs.
113
114
 
114
115
 
115
116
 
117
+ <div id="attribute-list">
118
+ <h3 class="section-bar">Attributes</h3>
119
+
120
+ <div class="name-list">
121
+ <table>
122
+ <tr class="top-aligned-row context-row">
123
+ <td class="context-item-name">files</td>
124
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
125
+ <td class="context-item-desc"></td>
126
+ </tr>
127
+ <tr class="top-aligned-row context-row">
128
+ <td class="context-item-name">guard</td>
129
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
130
+ <td class="context-item-desc"></td>
131
+ </tr>
132
+ </table>
133
+ </div>
134
+ </div>
116
135
 
117
136
 
118
137
 
@@ -120,12 +139,12 @@ href="../HttpResponse.html">Mongrel::HttpResponse</a> needs.
120
139
  <div id="methods">
121
140
  <h3 class="section-bar">Public Class methods</h3>
122
141
 
123
- <div id="method-M000040" class="method-detail">
124
- <a name="M000040"></a>
142
+ <div id="method-M000042" class="method-detail">
143
+ <a name="M000042"></a>
125
144
 
126
145
  <div class="method-heading">
127
- <a href="CampingHandler.src/M000040.html" target="Code" class="method-signature"
128
- onclick="popupCode('CampingHandler.src/M000040.html');return false;">
146
+ <a href="CampingHandler.src/M000042.html" target="Code" class="method-signature"
147
+ onclick="popupCode('CampingHandler.src/M000042.html');return false;">
129
148
  <span class="method-name">new</span><span class="method-args">(klass)</span>
130
149
  </a>
131
150
  </div>
@@ -136,12 +155,12 @@ href="../HttpResponse.html">Mongrel::HttpResponse</a> needs.
136
155
 
137
156
  <h3 class="section-bar">Public Instance methods</h3>
138
157
 
139
- <div id="method-M000041" class="method-detail">
140
- <a name="M000041"></a>
158
+ <div id="method-M000043" class="method-detail">
159
+ <a name="M000043"></a>
141
160
 
142
161
  <div class="method-heading">
143
- <a href="CampingHandler.src/M000041.html" target="Code" class="method-signature"
144
- onclick="popupCode('CampingHandler.src/M000041.html');return false;">
162
+ <a href="CampingHandler.src/M000043.html" target="Code" class="method-signature"
163
+ onclick="popupCode('CampingHandler.src/M000043.html');return false;">
145
164
  <span class="method-name">process</span><span class="method-args">(request, response)</span>
146
165
  </a>
147
166
  </div>
@@ -0,0 +1,20 @@
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>new (Mongrel::Camping::CampingHandler)</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/camping.rb, line 40</span>
14
+ 40: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">klass</span>)
15
+ 41: <span class="ruby-ivar">@files</span> = <span class="ruby-constant">Mongrel</span><span class="ruby-operator">::</span><span class="ruby-constant">DirHandler</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;/&quot;</span>,<span class="ruby-keyword kw">false</span>)
16
+ 42: <span class="ruby-ivar">@guard</span> = <span class="ruby-constant">Mutex</span>.<span class="ruby-identifier">new</span>
17
+ 43: <span class="ruby-ivar">@klass</span> = <span class="ruby-identifier">klass</span>
18
+ 44: <span class="ruby-keyword kw">end</span></pre>
19
+ </body>
20
+ </html>
@@ -0,0 +1,58 @@
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>process (Mongrel::Camping::CampingHandler)</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/camping.rb, line 46</span>
14
+ 46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process</span>(<span class="ruby-identifier">request</span>, <span class="ruby-identifier">response</span>)
15
+ 47: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">socket</span>.<span class="ruby-identifier">closed?</span>
16
+ 48: <span class="ruby-keyword kw">return</span>
17
+ 49: <span class="ruby-keyword kw">end</span>
18
+ 50:
19
+ 51: <span class="ruby-identifier">controller</span> = <span class="ruby-keyword kw">nil</span>
20
+ 52: <span class="ruby-ivar">@guard</span>.<span class="ruby-identifier">synchronize</span> {
21
+ 53: <span class="ruby-identifier">controller</span> = <span class="ruby-ivar">@klass</span>.<span class="ruby-identifier">run</span>(<span class="ruby-identifier">request</span>.<span class="ruby-identifier">body</span>, <span class="ruby-identifier">request</span>.<span class="ruby-identifier">params</span>)
22
+ 54: }
23
+ 55:
24
+ 56: <span class="ruby-identifier">sendfile</span>, <span class="ruby-identifier">clength</span> = <span class="ruby-keyword kw">nil</span>
25
+ 57: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">status</span>
26
+ 58: <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">headers</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
27
+ 59: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">k</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^X-SENDFILE$/i</span>
28
+ 60: <span class="ruby-identifier">sendfile</span> = <span class="ruby-identifier">v</span>
29
+ 61: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">k</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^CONTENT-LENGTH$/i</span>
30
+ 62: <span class="ruby-identifier">clength</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_i</span>
31
+ 63: <span class="ruby-keyword kw">else</span>
32
+ 64: [<span class="ruby-operator">*</span><span class="ruby-identifier">v</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">vi</span><span class="ruby-operator">|</span>
33
+ 65: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">header</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">vi</span>
34
+ 66: <span class="ruby-keyword kw">end</span>
35
+ 67: <span class="ruby-keyword kw">end</span>
36
+ 68: <span class="ruby-keyword kw">end</span>
37
+ 69:
38
+ 70: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sendfile</span>
39
+ 71: <span class="ruby-identifier">request</span>.<span class="ruby-identifier">params</span>[<span class="ruby-constant">Mongrel</span><span class="ruby-operator">::</span><span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">PATH_INFO</span>] = <span class="ruby-identifier">sendfile</span>
40
+ 72: <span class="ruby-ivar">@files</span>.<span class="ruby-identifier">process</span>(<span class="ruby-identifier">request</span>, <span class="ruby-identifier">response</span>)
41
+ 73: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">body</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:read</span>
42
+ 74: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">send_status</span>(<span class="ruby-identifier">clength</span>)
43
+ 75: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">send_header</span>
44
+ 76: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">chunk</span> = <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">body</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">16384</span>)
45
+ 77: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">chunk</span>)
46
+ 78: <span class="ruby-keyword kw">end</span>
47
+ 79: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">body</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-identifier">:close</span>
48
+ 80: <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">body</span>.<span class="ruby-identifier">close</span>
49
+ 81: <span class="ruby-keyword kw">end</span>
50
+ 82: <span class="ruby-keyword kw">else</span>
51
+ 83: <span class="ruby-identifier">body</span> = <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">body</span>.<span class="ruby-identifier">to_s</span>
52
+ 84: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">send_status</span>(<span class="ruby-identifier">body</span>.<span class="ruby-identifier">length</span>)
53
+ 85: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">send_header</span>
54
+ 86: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">body</span>)
55
+ 87: <span class="ruby-keyword kw">end</span>
56
+ 88: <span class="ruby-keyword kw">end</span></pre>
57
+ </body>
58
+ </html>
@@ -77,7 +77,7 @@
77
77
  A <a href="../Command.html">Command</a> pattern implementation used to
78
78
  create the set of command available to the user from <a
79
79
  href="../../Mongrel.html">Mongrel</a>. The script uses objects which
80
- implement this interface to do the user&#8217;s bidding.
80
+ implement this interface to do the user&#8216;s bidding.
81
81
  </p>
82
82
 
83
83
  </div>
@@ -89,19 +89,19 @@ implement this interface to do the user&#8217;s bidding.
89
89
  <h3 class="section-bar">Methods</h3>
90
90
 
91
91
  <div class="name-list">
92
- <a href="#M000018">configure</a>&nbsp;&nbsp;
93
- <a href="#M000028">failure</a>&nbsp;&nbsp;
94
- <a href="#M000020">help</a>&nbsp;&nbsp;
95
- <a href="#M000017">new</a>&nbsp;&nbsp;
96
- <a href="#M000016">options</a>&nbsp;&nbsp;
97
- <a href="#M000021">run</a>&nbsp;&nbsp;
98
- <a href="#M000022">valid?</a>&nbsp;&nbsp;
99
- <a href="#M000025">valid_dir?</a>&nbsp;&nbsp;
100
- <a href="#M000023">valid_exists?</a>&nbsp;&nbsp;
101
- <a href="#M000024">valid_file?</a>&nbsp;&nbsp;
102
- <a href="#M000027">valid_group?</a>&nbsp;&nbsp;
103
- <a href="#M000026">valid_user?</a>&nbsp;&nbsp;
104
- <a href="#M000019">validate</a>&nbsp;&nbsp;
92
+ <a href="#M000020">configure</a>&nbsp;&nbsp;
93
+ <a href="#M000030">failure</a>&nbsp;&nbsp;
94
+ <a href="#M000022">help</a>&nbsp;&nbsp;
95
+ <a href="#M000019">new</a>&nbsp;&nbsp;
96
+ <a href="#M000018">options</a>&nbsp;&nbsp;
97
+ <a href="#M000023">run</a>&nbsp;&nbsp;
98
+ <a href="#M000024">valid?</a>&nbsp;&nbsp;
99
+ <a href="#M000027">valid_dir?</a>&nbsp;&nbsp;
100
+ <a href="#M000025">valid_exists?</a>&nbsp;&nbsp;
101
+ <a href="#M000026">valid_file?</a>&nbsp;&nbsp;
102
+ <a href="#M000029">valid_group?</a>&nbsp;&nbsp;
103
+ <a href="#M000028">valid_user?</a>&nbsp;&nbsp;
104
+ <a href="#M000021">validate</a>&nbsp;&nbsp;
105
105
  </div>
106
106
  </div>
107
107
 
@@ -146,12 +146,12 @@ implement this interface to do the user&#8217;s bidding.
146
146
  <div id="methods">
147
147
  <h3 class="section-bar">Public Class methods</h3>
148
148
 
149
- <div id="method-M000017" class="method-detail">
150
- <a name="M000017"></a>
149
+ <div id="method-M000019" class="method-detail">
150
+ <a name="M000019"></a>
151
151
 
152
152
  <div class="method-heading">
153
- <a href="Base.src/M000017.html" target="Code" class="method-signature"
154
- onclick="popupCode('Base.src/M000017.html');return false;">
153
+ <a href="Base.src/M000019.html" target="Code" class="method-signature"
154
+ onclick="popupCode('Base.src/M000019.html');return false;">
155
155
  <span class="method-name">new</span><span class="method-args">(options={})</span>
156
156
  </a>
157
157
  </div>
@@ -167,12 +167,12 @@ function.
167
167
 
168
168
  <h3 class="section-bar">Public Instance methods</h3>
169
169
 
170
- <div id="method-M000018" class="method-detail">
171
- <a name="M000018"></a>
170
+ <div id="method-M000020" class="method-detail">
171
+ <a name="M000020"></a>
172
172
 
173
173
  <div class="method-heading">
174
- <a href="Base.src/M000018.html" target="Code" class="method-signature"
175
- onclick="popupCode('Base.src/M000018.html');return false;">
174
+ <a href="Base.src/M000020.html" target="Code" class="method-signature"
175
+ onclick="popupCode('Base.src/M000020.html');return false;">
176
176
  <span class="method-name">configure</span><span class="method-args">()</span>
177
177
  </a>
178
178
  </div>
@@ -181,84 +181,86 @@ function.
181
181
  </div>
182
182
  </div>
183
183
 
184
- <div id="method-M000028" class="method-detail">
185
- <a name="M000028"></a>
184
+ <div id="method-M000030" class="method-detail">
185
+ <a name="M000030"></a>
186
186
 
187
187
  <div class="method-heading">
188
- <a href="Base.src/M000028.html" target="Code" class="method-signature"
189
- onclick="popupCode('Base.src/M000028.html');return false;">
188
+ <a href="Base.src/M000030.html" target="Code" class="method-signature"
189
+ onclick="popupCode('Base.src/M000030.html');return false;">
190
190
  <span class="method-name">failure</span><span class="method-args">(message)</span>
191
191
  </a>
192
192
  </div>
193
193
 
194
194
  <div class="method-description">
195
195
  <p>
196
- Just a simple method to display failure until something better is
197
- developed.
196
+ Just a simple method to display <a href="Base.html#M000030">failure</a>
197
+ until something better is developed.
198
198
  </p>
199
199
  </div>
200
200
  </div>
201
201
 
202
- <div id="method-M000020" class="method-detail">
203
- <a name="M000020"></a>
202
+ <div id="method-M000022" class="method-detail">
203
+ <a name="M000022"></a>
204
204
 
205
205
  <div class="method-heading">
206
- <a href="Base.src/M000020.html" target="Code" class="method-signature"
207
- onclick="popupCode('Base.src/M000020.html');return false;">
206
+ <a href="Base.src/M000022.html" target="Code" class="method-signature"
207
+ onclick="popupCode('Base.src/M000022.html');return false;">
208
208
  <span class="method-name">help</span><span class="method-args">()</span>
209
209
  </a>
210
210
  </div>
211
211
 
212
212
  <div class="method-description">
213
213
  <p>
214
- Returns a help message. Defaults to OptionParser#help which should be good.
214
+ Returns a <a href="Base.html#M000022">help</a> message. Defaults to
215
+ OptionParser#help which should be good.
215
216
  </p>
216
217
  </div>
217
218
  </div>
218
219
 
219
- <div id="method-M000016" class="method-detail">
220
- <a name="M000016"></a>
220
+ <div id="method-M000018" class="method-detail">
221
+ <a name="M000018"></a>
221
222
 
222
223
  <div class="method-heading">
223
- <a href="Base.src/M000016.html" target="Code" class="method-signature"
224
- onclick="popupCode('Base.src/M000016.html');return false;">
224
+ <a href="Base.src/M000018.html" target="Code" class="method-signature"
225
+ onclick="popupCode('Base.src/M000018.html');return false;">
225
226
  <span class="method-name">options</span><span class="method-args">(opts)</span>
226
227
  </a>
227
228
  </div>
228
229
 
229
230
  <div class="method-description">
230
231
  <p>
231
- Called by the implemented command to set the options for that command.
232
- Every option has a short and long version, a description, a variable to
233
- set, and a default value. No exceptions.
232
+ Called by the implemented command to set the <a
233
+ href="Base.html#M000018">options</a> for that command. Every option has a
234
+ short and long version, a description, a variable to set, and a default
235
+ value. No exceptions.
234
236
  </p>
235
237
  </div>
236
238
  </div>
237
239
 
238
- <div id="method-M000021" class="method-detail">
239
- <a name="M000021"></a>
240
+ <div id="method-M000023" class="method-detail">
241
+ <a name="M000023"></a>
240
242
 
241
243
  <div class="method-heading">
242
- <a href="Base.src/M000021.html" target="Code" class="method-signature"
243
- onclick="popupCode('Base.src/M000021.html');return false;">
244
+ <a href="Base.src/M000023.html" target="Code" class="method-signature"
245
+ onclick="popupCode('Base.src/M000023.html');return false;">
244
246
  <span class="method-name">run</span><span class="method-args">()</span>
245
247
  </a>
246
248
  </div>
247
249
 
248
250
  <div class="method-description">
249
251
  <p>
250
- Runs the command doing it&#8217;s job. You should implement this otherwise
252
+ Runs the command doing it&#8216;s job. You should implement this otherwise
251
253
  it will throw a NotImplementedError as a reminder.
252
254
  </p>
253
255
  </div>
254
256
  </div>
255
257
 
256
- <div id="method-M000022" class="method-detail">
257
- <a name="M000022"></a>
258
+ <div id="method-M000024" class="method-detail">
259
+ <a name="M000024"></a>
258
260
 
259
261
  <div class="method-heading">
260
- <a href="Base.src/M000022.html" target="Code" class="method-signature"
261
- onclick="popupCode('Base.src/M000022.html');return false;">
262
+ <a href="Base.src/M000024.html" target="Code" class="method-signature"
263
+ onclick="popupCode('Base.src/M000024.html');return false;">
262
264
  <span class="method-name">valid?</span><span class="method-args">(exp, message)</span>
263
265
  </a>
264
266
  </div>
@@ -271,12 +273,12 @@ exiting.
271
273
  </div>
272
274
  </div>
273
275
 
274
- <div id="method-M000025" class="method-detail">
275
- <a name="M000025"></a>
276
+ <div id="method-M000027" class="method-detail">
277
+ <a name="M000027"></a>
276
278
 
277
279
  <div class="method-heading">
278
- <a href="Base.src/M000025.html" target="Code" class="method-signature"
279
- onclick="popupCode('Base.src/M000025.html');return false;">
280
+ <a href="Base.src/M000027.html" target="Code" class="method-signature"
281
+ onclick="popupCode('Base.src/M000027.html');return false;">
280
282
  <span class="method-name">valid_dir?</span><span class="method-args">(file, message)</span>
281
283
  </a>
282
284
  </div>
@@ -288,12 +290,12 @@ Validates that the given directory exists
288
290
  </div>
289
291
  </div>
290
292
 
291
- <div id="method-M000023" class="method-detail">
292
- <a name="M000023"></a>
293
+ <div id="method-M000025" class="method-detail">
294
+ <a name="M000025"></a>
293
295
 
294
296
  <div class="method-heading">
295
- <a href="Base.src/M000023.html" target="Code" class="method-signature"
296
- onclick="popupCode('Base.src/M000023.html');return false;">
297
+ <a href="Base.src/M000025.html" target="Code" class="method-signature"
298
+ onclick="popupCode('Base.src/M000025.html');return false;">
297
299
  <span class="method-name">valid_exists?</span><span class="method-args">(file, message)</span>
298
300
  </a>
299
301
  </div>
@@ -305,12 +307,12 @@ Validates that a file exists and if not displays the message
305
307
  </div>
306
308
  </div>
307
309
 
308
- <div id="method-M000024" class="method-detail">
309
- <a name="M000024"></a>
310
+ <div id="method-M000026" class="method-detail">
311
+ <a name="M000026"></a>
310
312
 
311
313
  <div class="method-heading">
312
- <a href="Base.src/M000024.html" target="Code" class="method-signature"
313
- onclick="popupCode('Base.src/M000024.html');return false;">
314
+ <a href="Base.src/M000026.html" target="Code" class="method-signature"
315
+ onclick="popupCode('Base.src/M000026.html');return false;">
314
316
  <span class="method-name">valid_file?</span><span class="method-args">(file, message)</span>
315
317
  </a>
316
318
  </div>
@@ -322,12 +324,12 @@ Validates that the file is a file and not a directory or something else.
322
324
  </div>
323
325
  </div>
324
326
 
325
- <div id="method-M000027" class="method-detail">
326
- <a name="M000027"></a>
327
+ <div id="method-M000029" class="method-detail">
328
+ <a name="M000029"></a>
327
329
 
328
330
  <div class="method-heading">
329
- <a href="Base.src/M000027.html" target="Code" class="method-signature"
330
- onclick="popupCode('Base.src/M000027.html');return false;">
331
+ <a href="Base.src/M000029.html" target="Code" class="method-signature"
332
+ onclick="popupCode('Base.src/M000029.html');return false;">
331
333
  <span class="method-name">valid_group?</span><span class="method-args">(group)</span>
332
334
  </a>
333
335
  </div>
@@ -336,12 +338,12 @@ Validates that the file is a file and not a directory or something else.
336
338
  </div>
337
339
  </div>
338
340
 
339
- <div id="method-M000026" class="method-detail">
340
- <a name="M000026"></a>
341
+ <div id="method-M000028" class="method-detail">
342
+ <a name="M000028"></a>
341
343
 
342
344
  <div class="method-heading">
343
- <a href="Base.src/M000026.html" target="Code" class="method-signature"
344
- onclick="popupCode('Base.src/M000026.html');return false;">
345
+ <a href="Base.src/M000028.html" target="Code" class="method-signature"
346
+ onclick="popupCode('Base.src/M000028.html');return false;">
345
347
  <span class="method-name">valid_user?</span><span class="method-args">(user)</span>
346
348
  </a>
347
349
  </div>
@@ -350,12 +352,12 @@ Validates that the file is a file and not a directory or something else.
350
352
  </div>
351
353
  </div>
352
354
 
353
- <div id="method-M000019" class="method-detail">
354
- <a name="M000019"></a>
355
+ <div id="method-M000021" class="method-detail">
356
+ <a name="M000021"></a>
355
357
 
356
358
  <div class="method-heading">
357
- <a href="Base.src/M000019.html" target="Code" class="method-signature"
358
- onclick="popupCode('Base.src/M000019.html');return false;">
359
+ <a href="Base.src/M000021.html" target="Code" class="method-signature"
360
+ onclick="popupCode('Base.src/M000021.html');return false;">
359
361
  <span class="method-name">validate</span><span class="method-args">()</span>
360
362
  </a>
361
363
  </div>