mongrel 0.3.13.4 → 1.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -108,13 +108,13 @@
108
108
  <p>
109
109
  A very simple little class for doing some basic fast statistics sampling.
110
110
  You feed it either samples of numeric data you want measured or you call <a
111
- href="Mongrel/Stats.html#M000143">Stats.tick</a> to get it to add a time
112
- delta between the last time you called it. When you&#8217;re done either
111
+ href="Mongrel/Stats.html#M000146">Stats.tick</a> to get it to add a time
112
+ delta between the last time you called it. When you&#8216;re done either
113
113
  call sum, sumsq, n, min, max, mean or sd to get the information. The other
114
114
  option is to just call dump and see everything.
115
115
  </p>
116
116
  <p>
117
- It does all of this very fast and doesn&#8217;t take up any memory since
117
+ It does all of this very fast and doesn&#8216;t take up any memory since
118
118
  the samples are not stored but instead all the values are calculated on the
119
119
  fly.
120
120
  </p>
@@ -81,11 +81,12 @@
81
81
  <div id="description">
82
82
  <p>
83
83
  The beginning of a complete wrapper around <a
84
- href="../Mongrel.html">Mongrel</a>&#8217;s internal HTTP processing system
84
+ href="../Mongrel.html">Mongrel</a>&#8216;s internal HTTP processing system
85
85
  but maintaining the original Ruby CGI module. Use this only as a crutch to
86
86
  get existing CGI based systems working. It should handle everything, but
87
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.
88
+ so I need testers to help work <a href="CGIWrapper.html#M000118">out</a>
89
+ the various corner cases.
89
90
  </p>
90
91
  <p>
91
92
  The CGIWrapper.handler attribute is normally not set and is available for
@@ -104,7 +105,7 @@ with:
104
105
  <p>
105
106
  Which is ugly but does the job. Feel free to write a <a
106
107
  href="Rails.html">Rails</a> helper for that. Refer to <a
107
- href="DirHandler.html#M000050">DirHandler#can_serve</a> for more
108
+ href="DirHandler.html#M000052">DirHandler#can_serve</a> for more
108
109
  information on this.
109
110
  </p>
110
111
 
@@ -117,15 +118,15 @@ information on this.
117
118
  <h3 class="section-bar">Methods</h3>
118
119
 
119
120
  <div class="name-list">
120
- <a href="#M000117">args</a>&nbsp;&nbsp;
121
- <a href="#M000118">env_table</a>&nbsp;&nbsp;
122
- <a href="#M000113">header</a>&nbsp;&nbsp;
123
- <a href="#M000112">new</a>&nbsp;&nbsp;
124
- <a href="#M000115">out</a>&nbsp;&nbsp;
125
- <a href="#M000114">send_cookies</a>&nbsp;&nbsp;
126
- <a href="#M000116">status</a>&nbsp;&nbsp;
127
- <a href="#M000119">stdinput</a>&nbsp;&nbsp;
128
- <a href="#M000120">stdoutput</a>&nbsp;&nbsp;
121
+ <a href="#M000120">args</a>&nbsp;&nbsp;
122
+ <a href="#M000121">env_table</a>&nbsp;&nbsp;
123
+ <a href="#M000116">header</a>&nbsp;&nbsp;
124
+ <a href="#M000115">new</a>&nbsp;&nbsp;
125
+ <a href="#M000118">out</a>&nbsp;&nbsp;
126
+ <a href="#M000117">send_cookies</a>&nbsp;&nbsp;
127
+ <a href="#M000119">status</a>&nbsp;&nbsp;
128
+ <a href="#M000122">stdinput</a>&nbsp;&nbsp;
129
+ <a href="#M000123">stdoutput</a>&nbsp;&nbsp;
129
130
  </div>
130
131
  </div>
131
132
 
@@ -148,8 +149,8 @@ information on this.
148
149
  <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
150
  <td width="3em">&nbsp;</td>
150
151
  <td class="context-item-desc">
151
- these are stripped out of any keys passed to <a
152
- href="CGIWrapper.html#M000113">CGIWrapper.header</a> function
152
+ these are stripped <a href="CGIWrapper.html#M000118">out</a> of any keys
153
+ passed to <a href="CGIWrapper.html#M000116">CGIWrapper.header</a> function
153
154
 
154
155
  </td>
155
156
  </tr>
@@ -169,7 +170,7 @@ href="CGIWrapper.html#M000113">CGIWrapper.header</a> function
169
170
  <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
170
171
  <td class="context-item-desc">
171
172
  Set this to false if you want calls to <a
172
- href="CGIWrapper.html#M000115">CGIWrapper.out</a> to not actually send the
173
+ href="CGIWrapper.html#M000118">CGIWrapper.out</a> to not actually send the
173
174
  response until you force it.
174
175
 
175
176
  </td>
@@ -194,12 +195,12 @@ response until you force it.
194
195
  <div id="methods">
195
196
  <h3 class="section-bar">Public Class methods</h3>
196
197
 
197
- <div id="method-M000112" class="method-detail">
198
- <a name="M000112"></a>
198
+ <div id="method-M000115" class="method-detail">
199
+ <a name="M000115"></a>
199
200
 
200
201
  <div class="method-heading">
201
- <a href="CGIWrapper.src/M000112.html" target="Code" class="method-signature"
202
- onclick="popupCode('CGIWrapper.src/M000112.html');return false;">
202
+ <a href="CGIWrapper.src/M000115.html" target="Code" class="method-signature"
203
+ onclick="popupCode('CGIWrapper.src/M000115.html');return false;">
203
204
  <span class="method-name">new</span><span class="method-args">(request, response, *args)</span>
204
205
  </a>
205
206
  </div>
@@ -210,90 +211,93 @@ Takes an <a href="HttpRequest.html">HttpRequest</a> and <a
210
211
  href="HttpResponse.html">HttpResponse</a> object, plus any additional
211
212
  arguments normally passed to CGI. These are used internally to create a
212
213
  wrapper around the real CGI while maintaining <a
213
- href="../Mongrel.html">Mongrel</a>&#8217;s view of the world.
214
+ href="../Mongrel.html">Mongrel</a>&#8216;s view of the world.
214
215
  </p>
215
216
  </div>
216
217
  </div>
217
218
 
218
219
  <h3 class="section-bar">Public Instance methods</h3>
219
220
 
220
- <div id="method-M000117" class="method-detail">
221
- <a name="M000117"></a>
221
+ <div id="method-M000120" class="method-detail">
222
+ <a name="M000120"></a>
222
223
 
223
224
  <div class="method-heading">
224
- <a href="CGIWrapper.src/M000117.html" target="Code" class="method-signature"
225
- onclick="popupCode('CGIWrapper.src/M000117.html');return false;">
225
+ <a href="CGIWrapper.src/M000120.html" target="Code" class="method-signature"
226
+ onclick="popupCode('CGIWrapper.src/M000120.html');return false;">
226
227
  <span class="method-name">args</span><span class="method-args">()</span>
227
228
  </a>
228
229
  </div>
229
230
 
230
231
  <div class="method-description">
231
232
  <p>
232
- Used to wrap the normal args variable used inside CGI.
233
+ Used to wrap the normal <a href="CGIWrapper.html#M000120">args</a> variable
234
+ used inside CGI.
233
235
  </p>
234
236
  </div>
235
237
  </div>
236
238
 
237
- <div id="method-M000118" class="method-detail">
238
- <a name="M000118"></a>
239
+ <div id="method-M000121" class="method-detail">
240
+ <a name="M000121"></a>
239
241
 
240
242
  <div class="method-heading">
241
- <a href="CGIWrapper.src/M000118.html" target="Code" class="method-signature"
242
- onclick="popupCode('CGIWrapper.src/M000118.html');return false;">
243
+ <a href="CGIWrapper.src/M000121.html" target="Code" class="method-signature"
244
+ onclick="popupCode('CGIWrapper.src/M000121.html');return false;">
243
245
  <span class="method-name">env_table</span><span class="method-args">()</span>
244
246
  </a>
245
247
  </div>
246
248
 
247
249
  <div class="method-description">
248
250
  <p>
249
- Used to wrap the normal <a href="CGIWrapper.html#M000118">env_table</a>
251
+ Used to wrap the normal <a href="CGIWrapper.html#M000121">env_table</a>
250
252
  variable used inside CGI.
251
253
  </p>
252
254
  </div>
253
255
  </div>
254
256
 
255
- <div id="method-M000113" class="method-detail">
256
- <a name="M000113"></a>
257
+ <div id="method-M000116" class="method-detail">
258
+ <a name="M000116"></a>
257
259
 
258
260
  <div class="method-heading">
259
- <a href="CGIWrapper.src/M000113.html" target="Code" class="method-signature"
260
- onclick="popupCode('CGIWrapper.src/M000113.html');return false;">
261
+ <a href="CGIWrapper.src/M000116.html" target="Code" class="method-signature"
262
+ onclick="popupCode('CGIWrapper.src/M000116.html');return false;">
261
263
  <span class="method-name">header</span><span class="method-args">(options = &quot;text/html&quot;)</span>
262
264
  </a>
263
265
  </div>
264
266
 
265
267
  <div class="method-description">
266
268
  <p>
267
- The header is typically called to send back the header. In our case we
269
+ The <a href="CGIWrapper.html#M000116">header</a> is typically called to
270
+ send back the <a href="CGIWrapper.html#M000116">header</a>. In our case we
268
271
  collect it into a hash for later usage.
269
272
  </p>
270
273
  <p>
271
274
  nph &#8212; Mostly ignored. It&#8216;ll output the date. connection &#8212;
272
275
  Completely ignored. Why is CGI doing this? length &#8212; Ignored since <a
273
- href="../Mongrel.html">Mongrel</a> figures this out from what you write to
274
- output.
276
+ href="../Mongrel.html">Mongrel</a> figures this <a
277
+ href="CGIWrapper.html#M000118">out</a> from what you write to output.
275
278
  </p>
276
279
  </div>
277
280
  </div>
278
281
 
279
- <div id="method-M000115" class="method-detail">
280
- <a name="M000115"></a>
282
+ <div id="method-M000118" class="method-detail">
283
+ <a name="M000118"></a>
281
284
 
282
285
  <div class="method-heading">
283
- <a href="CGIWrapper.src/M000115.html" target="Code" class="method-signature"
284
- onclick="popupCode('CGIWrapper.src/M000115.html');return false;">
286
+ <a href="CGIWrapper.src/M000118.html" target="Code" class="method-signature"
287
+ onclick="popupCode('CGIWrapper.src/M000118.html');return false;">
285
288
  <span class="method-name">out</span><span class="method-args">(options = &quot;text/html&quot;, really_final=@default_really_final) {||| &quot;&quot;)| ...}</span>
286
289
  </a>
287
290
  </div>
288
291
 
289
292
  <div class="method-description">
290
293
  <p>
291
- The dumb thing is people can call header or this or both and in any order.
292
- So, we just reuse header and then finalize the <a
293
- href="HttpResponse.html">HttpResponse</a> the right way. Status is taken
294
- from the various options and converted to what <a
294
+ The dumb thing is people can call <a
295
+ href="CGIWrapper.html#M000116">header</a> or this or both and in any order.
296
+ So, we just reuse <a href="CGIWrapper.html#M000116">header</a> and then
297
+ finalize the <a href="HttpResponse.html">HttpResponse</a> the right way.
298
+ Status is taken from the various options and converted to what <a
295
299
  href="../Mongrel.html">Mongrel</a> needs via the <a
296
- href="CGIWrapper.html#M000116">CGIWrapper.status</a> function.
300
+ href="CGIWrapper.html#M000119">CGIWrapper.status</a> function.
297
301
  </p>
298
302
  <p>
299
303
  We also prevent <a href="Rails.html">Rails</a> from actually doing the
@@ -306,12 +310,12 @@ for others.
306
310
  </div>
307
311
  </div>
308
312
 
309
- <div id="method-M000114" class="method-detail">
310
- <a name="M000114"></a>
313
+ <div id="method-M000117" class="method-detail">
314
+ <a name="M000117"></a>
311
315
 
312
316
  <div class="method-heading">
313
- <a href="CGIWrapper.src/M000114.html" target="Code" class="method-signature"
314
- onclick="popupCode('CGIWrapper.src/M000114.html');return false;">
317
+ <a href="CGIWrapper.src/M000117.html" target="Code" class="method-signature"
318
+ onclick="popupCode('CGIWrapper.src/M000117.html');return false;">
315
319
  <span class="method-name">send_cookies</span><span class="method-args">(to)</span>
316
320
  </a>
317
321
  </div>
@@ -319,7 +323,8 @@ for others.
319
323
  <div class="method-description">
320
324
  <p>
321
325
  Takes any &#8216;cookie&#8217; setting and sends it over the <a
322
- href="../Mongrel.html">Mongrel</a> header, then removes the setting from
326
+ href="../Mongrel.html">Mongrel</a> <a
327
+ href="CGIWrapper.html#M000116">header</a>, then removes the setting from
323
328
  the options. If cookie is an Array or Hash then it sends those on with
324
329
  .to_s, otherwise it just calls .to_s on it and hopefully your
325
330
  &quot;cookie&quot; can write itself correctly.
@@ -327,56 +332,59 @@ the options. If cookie is an Array or Hash then it sends those on with
327
332
  </div>
328
333
  </div>
329
334
 
330
- <div id="method-M000116" class="method-detail">
331
- <a name="M000116"></a>
335
+ <div id="method-M000119" class="method-detail">
336
+ <a name="M000119"></a>
332
337
 
333
338
  <div class="method-heading">
334
- <a href="CGIWrapper.src/M000116.html" target="Code" class="method-signature"
335
- onclick="popupCode('CGIWrapper.src/M000116.html');return false;">
339
+ <a href="CGIWrapper.src/M000119.html" target="Code" class="method-signature"
340
+ onclick="popupCode('CGIWrapper.src/M000119.html');return false;">
336
341
  <span class="method-name">status</span><span class="method-args">()</span>
337
342
  </a>
338
343
  </div>
339
344
 
340
345
  <div class="method-description">
341
346
  <p>
342
- Computes the status once, but lazily so that people who call header twice
343
- don&#8217;t get penalized. Because CGI insists on including the options
344
- status message in the status we have to do a bit of parsing.
347
+ Computes the <a href="CGIWrapper.html#M000119">status</a> once, but lazily
348
+ so that people who call <a href="CGIWrapper.html#M000116">header</a> twice
349
+ don&#8216;t get penalized. Because CGI insists on including the options <a
350
+ href="CGIWrapper.html#M000119">status</a> message in the <a
351
+ href="CGIWrapper.html#M000119">status</a> we have to do a bit of parsing.
345
352
  </p>
346
353
  </div>
347
354
  </div>
348
355
 
349
- <div id="method-M000119" class="method-detail">
350
- <a name="M000119"></a>
356
+ <div id="method-M000122" class="method-detail">
357
+ <a name="M000122"></a>
351
358
 
352
359
  <div class="method-heading">
353
- <a href="CGIWrapper.src/M000119.html" target="Code" class="method-signature"
354
- onclick="popupCode('CGIWrapper.src/M000119.html');return false;">
360
+ <a href="CGIWrapper.src/M000122.html" target="Code" class="method-signature"
361
+ onclick="popupCode('CGIWrapper.src/M000122.html');return false;">
355
362
  <span class="method-name">stdinput</span><span class="method-args">()</span>
356
363
  </a>
357
364
  </div>
358
365
 
359
366
  <div class="method-description">
360
367
  <p>
361
- Used to wrap the normal stdinput variable used inside CGI.
368
+ Used to wrap the normal <a href="CGIWrapper.html#M000122">stdinput</a>
369
+ variable used inside CGI.
362
370
  </p>
363
371
  </div>
364
372
  </div>
365
373
 
366
- <div id="method-M000120" class="method-detail">
367
- <a name="M000120"></a>
374
+ <div id="method-M000123" class="method-detail">
375
+ <a name="M000123"></a>
368
376
 
369
377
  <div class="method-heading">
370
- <a href="CGIWrapper.src/M000120.html" target="Code" class="method-signature"
371
- onclick="popupCode('CGIWrapper.src/M000120.html');return false;">
378
+ <a href="CGIWrapper.src/M000123.html" target="Code" class="method-signature"
379
+ onclick="popupCode('CGIWrapper.src/M000123.html');return false;">
372
380
  <span class="method-name">stdoutput</span><span class="method-args">()</span>
373
381
  </a>
374
382
  </div>
375
383
 
376
384
  <div class="method-description">
377
385
  <p>
378
- The stdoutput should be completely bypassed but we&#8217;ll drop a warning
379
- just in case
386
+ The <a href="CGIWrapper.html#M000123">stdoutput</a> should be completely
387
+ bypassed but we&#8216;ll drop a warning just in case
380
388
  </p>
381
389
  </div>
382
390
  </div>
@@ -5,28 +5,21 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>out (Mongrel::CGIWrapper)</title>
8
+ <title>new (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 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>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel/cgi.rb, line 42</span>
14
+ 42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">request</span>, <span class="ruby-identifier">response</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
15
+ 43: <span class="ruby-ivar">@request</span> = <span class="ruby-identifier">request</span>
16
+ 44: <span class="ruby-ivar">@response</span> = <span class="ruby-identifier">response</span>
17
+ 45: <span class="ruby-ivar">@args</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>
18
+ 46: <span class="ruby-ivar">@input</span> = <span class="ruby-identifier">request</span>.<span class="ruby-identifier">body</span>
19
+ 47: <span class="ruby-ivar">@head</span> = {}
20
+ 48: <span class="ruby-ivar">@out_called</span> = <span class="ruby-keyword kw">false</span>
21
+ 49: <span class="ruby-ivar">@default_really_final</span>=<span class="ruby-keyword kw">true</span>
22
+ 50: <span class="ruby-keyword kw">super</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
23
+ 51: <span class="ruby-keyword kw">end</span></pre>
31
24
  </body>
32
25
  </html>
@@ -5,21 +5,43 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>status (Mongrel::CGIWrapper)</title>
8
+ <title>header (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 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>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel/cgi.rb, line 60</span>
14
+ 60: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">header</span>(<span class="ruby-identifier">options</span> = <span class="ruby-value str">&quot;text/html&quot;</span>)
15
+ 61: <span class="ruby-comment cmt"># if they pass in a string then just write the Content-Type</span>
16
+ 62: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">String</span>
17
+ 63: <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Content-Type'</span>] = <span class="ruby-identifier">options</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Content-Type'</span>]
18
+ 64: <span class="ruby-keyword kw">else</span>
19
+ 65: <span class="ruby-comment cmt"># convert the given options into what Mongrel wants</span>
20
+ 66: <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Content-Type'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value str">'type'</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;text/html&quot;</span>
21
+ 67: <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Content-Type'</span>] <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;; charset=&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'charset'</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-value str">&quot;charset&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'charset'</span>]
22
+ 68:
23
+ 69: <span class="ruby-comment cmt"># setup date only if they use nph</span>
24
+ 70: <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Date'</span>] = <span class="ruby-constant">CGI</span><span class="ruby-operator">::</span><span class="ruby-identifier">rfc1123_date</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'nph'</span>]
25
+ 71:
26
+ 72: <span class="ruby-comment cmt"># setup the server to use the default or what they set</span>
27
+ 73: <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Server'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value str">'server'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">env_table</span>[<span class="ruby-value str">'SERVER_SOFTWARE'</span>]
28
+ 74:
29
+ 75: <span class="ruby-comment cmt"># remaining possible options they can give</span>
30
+ 76: <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Status'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value str">'status'</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'status'</span>]
31
+ 77: <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Content-Language'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value str">'language'</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'language'</span>]
32
+ 78: <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Expires'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value str">'expires'</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'expires'</span>]
33
+ 79:
34
+ 80: <span class="ruby-comment cmt"># drop the keys we don't want anymore</span>
35
+ 81: <span class="ruby-constant">REMOVED_KEYS</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>) }
36
+ 82:
37
+ 83: <span class="ruby-comment cmt"># finally just convert the rest raw (which puts 'cookie' directly)</span>
38
+ 84: <span class="ruby-comment cmt"># 'cookie' is translated later as we write the header out</span>
39
+ 85: <span class="ruby-identifier">options</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-ivar">@head</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>}
40
+ 86: <span class="ruby-keyword kw">end</span>
41
+ 87:
42
+ 88: <span class="ruby-comment cmt"># doing this fakes out the cgi library to think the headers are empty</span>
43
+ 89: <span class="ruby-comment cmt"># we then do the real headers in the out function call later</span>
44
+ 90: <span class="ruby-value str">&quot;&quot;</span>
45
+ 91: <span class="ruby-keyword kw">end</span></pre>
24
46
  </body>
25
47
  </html>
@@ -5,14 +5,30 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>args (Mongrel::CGIWrapper)</title>
8
+ <title>send_cookies (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 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>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel/cgi.rb, line 98</span>
14
+ 98: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_cookies</span>(<span class="ruby-identifier">to</span>)
15
+ 99: <span class="ruby-comment cmt"># convert the cookies based on the myriad of possible ways to set a cookie</span>
16
+ 100: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'cookie'</span>]
17
+ 101: <span class="ruby-identifier">cookie</span> = <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'cookie'</span>]
18
+ 102: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">cookie</span>
19
+ 103: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
20
+ 104: <span class="ruby-identifier">cookie</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">to</span>[<span class="ruby-value str">'Set-Cookie'</span>] = <span class="ruby-identifier">c</span>.<span class="ruby-identifier">to_s</span> }
21
+ 105: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Hash</span>
22
+ 106: <span class="ruby-identifier">cookie</span>.<span class="ruby-identifier">each_value</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">to</span>[<span class="ruby-value str">'Set-Cookie'</span>] = <span class="ruby-identifier">c</span>.<span class="ruby-identifier">to_s</span>}
23
+ 107: <span class="ruby-keyword kw">else</span>
24
+ 108: <span class="ruby-identifier">to</span>[<span class="ruby-value str">'Set-Cookie'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value str">'cookie'</span>].<span class="ruby-identifier">to_s</span>
25
+ 109: <span class="ruby-keyword kw">end</span>
26
+ 110:
27
+ 111: <span class="ruby-ivar">@head</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'cookie'</span>)
28
+ 112:
29
+ 113: <span class="ruby-comment cmt"># @output_cookies seems to never be used, but we'll process it just in case</span>
30
+ 114: <span class="ruby-ivar">@output_cookies</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">to</span>[<span class="ruby-value str">'Set-Cookie'</span>] = <span class="ruby-identifier">c</span>.<span class="ruby-identifier">to_s</span> } <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@output_cookies</span>
31
+ 115: <span class="ruby-keyword kw">end</span>
32
+ 116: <span class="ruby-keyword kw">end</span></pre>
17
33
  </body>
18
34
  </html>