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.
- data/README +1 -75
- data/Rakefile +14 -14
- data/bin/mongrel_rails +35 -23
- data/doc/rdoc/classes/IO.html +12 -12
- data/doc/rdoc/classes/IO.src/{M000001.html → M000003.html} +0 -0
- data/doc/rdoc/classes/IO.src/{M000002.html → M000004.html} +0 -0
- data/doc/rdoc/classes/Kernel.html +11 -11
- data/doc/rdoc/classes/Kernel.src/{M000010.html → M000012.html} +0 -0
- data/doc/rdoc/classes/Kernel.src/{M000011.html → M000013.html} +0 -0
- data/doc/rdoc/classes/Mongrel.html +3 -3
- data/doc/rdoc/classes/Mongrel/CGIWrapper.html +77 -69
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000115.html +12 -19
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000116.html +34 -12
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000117.html +21 -5
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000118.html +19 -5
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000119.html +12 -5
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000120.html +5 -6
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000121.html +18 -0
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000122.html +18 -0
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000123.html +19 -0
- data/doc/rdoc/classes/Mongrel/Camping.html +8 -8
- data/doc/rdoc/classes/Mongrel/Camping.src/M000041.html +22 -0
- data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.html +31 -12
- data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000042.html +20 -0
- data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000043.html +58 -0
- data/doc/rdoc/classes/Mongrel/Command/Base.html +75 -73
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000018.html +11 -5
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000019.html +29 -5
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000020.html +5 -5
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000021.html +5 -5
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000022.html +5 -9
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000023.html +5 -5
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000024.html +9 -5
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000025.html +5 -5
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000026.html +5 -11
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000027.html +5 -11
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000028.html +11 -5
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000029.html +24 -0
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000030.html +18 -0
- data/doc/rdoc/classes/Mongrel/Command/Registry.html +20 -20
- data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000031.html +7 -45
- data/doc/rdoc/classes/Mongrel/Command/Registry.src/{M000030.html → M000032.html} +0 -0
- data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000033.html +58 -0
- data/doc/rdoc/classes/Mongrel/Configurator.html +163 -140
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000093.html +14 -8
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000094.html +18 -7
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000095.html +5 -10
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000096.html +8 -5
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000097.html +7 -25
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000098.html +10 -6
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000099.html +5 -26
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000100.html +25 -20
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000101.html +6 -5
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000102.html +26 -11
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000103.html +20 -6
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000104.html +5 -5
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000105.html +11 -9
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000106.html +6 -9
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000107.html +5 -5
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000108.html +9 -21
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000109.html +9 -5
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000110.html +5 -23
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000111.html +21 -5
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000112.html +18 -0
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000113.html +36 -0
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000114.html +18 -0
- data/doc/rdoc/classes/Mongrel/Const.html +8 -9
- data/doc/rdoc/classes/Mongrel/DeflateFilter.html +19 -12
- data/doc/rdoc/classes/Mongrel/DeflateFilter.src/{M000121.html → M000124.html} +5 -5
- data/doc/rdoc/classes/Mongrel/DeflateFilter.src/{M000122.html → M000125.html} +9 -14
- data/doc/rdoc/classes/Mongrel/DirHandler.html +43 -43
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000051.html +8 -25
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000052.html +29 -50
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000053.html +25 -26
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000054.html +52 -5
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000055.html +39 -0
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000056.html +18 -0
- data/doc/rdoc/classes/Mongrel/Error404Handler.html +11 -11
- data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000123.html → M000126.html} +4 -4
- data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000124.html → M000127.html} +4 -4
- data/doc/rdoc/classes/Mongrel/HeaderOut.html +15 -10
- data/doc/rdoc/classes/Mongrel/HeaderOut.src/M000066.html +21 -0
- data/doc/rdoc/classes/Mongrel/HeaderOut.src/M000067.html +21 -0
- data/doc/rdoc/classes/Mongrel/HttpHandler.html +25 -23
- data/doc/rdoc/classes/Mongrel/HttpHandler.src/M000072.html +4 -4
- data/doc/rdoc/classes/Mongrel/HttpHandler.src/{M000071.html → M000073.html} +3 -3
- data/doc/rdoc/classes/Mongrel/{HttpHandlerPlugin.src/M000012.html → HttpHandler.src/M000074.html} +4 -4
- data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.html +22 -21
- data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000014.html +4 -6
- data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000015.html +4 -4
- data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000016.html +19 -0
- data/doc/rdoc/classes/Mongrel/{HttpHandler.src/M000070.html → HttpHandlerPlugin.src/M000017.html} +4 -4
- data/doc/rdoc/classes/Mongrel/HttpParser.html +44 -42
- data/doc/rdoc/classes/Mongrel/HttpParser.src/M000044.html +6 -7
- data/doc/rdoc/classes/Mongrel/HttpParser.src/M000045.html +7 -37
- data/doc/rdoc/classes/Mongrel/HttpParser.src/M000046.html +7 -5
- data/doc/rdoc/classes/Mongrel/HttpParser.src/M000047.html +37 -5
- data/doc/rdoc/classes/Mongrel/HttpParser.src/M000048.html +5 -6
- data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000042.html → M000049.html} +5 -6
- data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000043.html → M000050.html} +6 -7
- data/doc/rdoc/classes/Mongrel/HttpRequest.html +37 -40
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000133.html +37 -7
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000134.html +28 -7
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000135.html +16 -19
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000136.html +20 -0
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000137.html +20 -0
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000138.html +32 -0
- data/doc/rdoc/classes/Mongrel/HttpResponse.html +95 -85
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000075.html +12 -13
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000076.html +7 -9
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000077.html +13 -9
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000078.html +9 -9
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000079.html +9 -18
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000080.html +9 -8
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000081.html +18 -7
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000082.html +8 -7
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000083.html +7 -7
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000084.html +7 -5
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000085.html +20 -0
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000086.html +18 -0
- data/doc/rdoc/classes/Mongrel/HttpServer.html +59 -63
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000057.html +12 -19
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000058.html +87 -8
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000059.html +19 -9
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000060.html +8 -49
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000061.html +16 -21
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000062.html +52 -5
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000063.html +21 -9
- data/doc/rdoc/classes/Mongrel/{HeaderOut.src → HttpServer.src}/M000064.html +5 -5
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000065.html +22 -0
- data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.html +27 -25
- data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000034.html +24 -13
- data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/{M000033.html → M000035.html} +11 -11
- data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000036.html +26 -0
- data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.html +24 -26
- data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000037.html +10 -8
- data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000038.html +43 -12
- data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000039.html +20 -0
- data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000040.html +25 -0
- data/doc/rdoc/classes/Mongrel/RedirectHandler.html +10 -10
- data/doc/rdoc/classes/Mongrel/RedirectHandler.src/{M000128.html → M000131.html} +8 -8
- data/doc/rdoc/classes/Mongrel/RedirectHandler.src/{M000129.html → M000132.html} +13 -13
- data/doc/rdoc/classes/Mongrel/StatisticsFilter.html +20 -20
- data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/{M000125.html → M000128.html} +10 -10
- data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/{M000126.html → M000129.html} +10 -10
- data/doc/rdoc/classes/Mongrel/StatisticsFilter.src/{M000127.html → M000130.html} +4 -4
- data/doc/rdoc/classes/Mongrel/Stats.html +43 -42
- data/doc/rdoc/classes/Mongrel/Stats.src/M000139.html +6 -5
- data/doc/rdoc/classes/Mongrel/Stats.src/M000140.html +10 -5
- data/doc/rdoc/classes/Mongrel/Stats.src/M000141.html +13 -5
- data/doc/rdoc/classes/Mongrel/Stats.src/M000142.html +5 -10
- data/doc/rdoc/classes/Mongrel/Stats.src/M000143.html +5 -7
- data/doc/rdoc/classes/Mongrel/Stats.src/{M000136.html → M000144.html} +5 -6
- data/doc/rdoc/classes/Mongrel/Stats.src/M000145.html +23 -0
- data/doc/rdoc/classes/Mongrel/Stats.src/M000146.html +20 -0
- data/doc/rdoc/classes/Mongrel/StatusHandler.html +21 -21
- data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000068.html +5 -29
- data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000069.html +11 -7
- data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000070.html +42 -0
- data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000071.html +20 -0
- data/doc/rdoc/classes/Mongrel/URIClassifier.html +58 -55
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000087.html +5 -26
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000088.html +5 -38
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000089.html +18 -15
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000090.html +25 -57
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000091.html +36 -0
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000092.html +83 -0
- data/doc/rdoc/classes/MongrelDbg.html +25 -25
- data/doc/rdoc/classes/MongrelDbg.src/M000007.html +11 -9
- data/doc/rdoc/classes/MongrelDbg.src/M000008.html +7 -8
- data/doc/rdoc/classes/MongrelDbg.src/M000009.html +9 -5
- data/doc/rdoc/classes/MongrelDbg.src/M000010.html +21 -0
- data/doc/rdoc/classes/MongrelDbg.src/M000011.html +18 -0
- data/doc/rdoc/classes/{Sync.html → Mutex.html} +50 -19
- data/doc/rdoc/classes/Mutex.src/M000001.html +24 -0
- data/doc/rdoc/classes/Mutex.src/M000002.html +32 -0
- data/doc/rdoc/classes/RequestLog/Access.html +5 -5
- data/doc/rdoc/classes/RequestLog/Access.src/{M000144.html → M000147.html} +0 -0
- data/doc/rdoc/classes/RequestLog/Files.html +5 -5
- data/doc/rdoc/classes/RequestLog/Files.src/{M000145.html → M000148.html} +0 -0
- data/doc/rdoc/classes/RequestLog/Objects.html +5 -5
- data/doc/rdoc/classes/RequestLog/Objects.src/{M000147.html → M000150.html} +0 -0
- data/doc/rdoc/classes/RequestLog/Params.html +5 -5
- data/doc/rdoc/classes/RequestLog/Params.src/{M000148.html → M000151.html} +0 -0
- data/doc/rdoc/classes/RequestLog/Threads.html +5 -5
- data/doc/rdoc/classes/RequestLog/Threads.src/{M000146.html → M000149.html} +0 -0
- data/doc/rdoc/classes/TCPServer.html +10 -10
- data/doc/rdoc/classes/TCPServer.src/{M000003.html → M000005.html} +0 -0
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/COPYING.html +1 -1
- data/doc/rdoc/files/LICENSE.html +1 -1
- data/doc/rdoc/files/README.html +11 -100
- data/doc/rdoc/files/ext/http11/http11_c.html +1 -1
- data/doc/rdoc/files/lib/mongrel/camping_rb.html +2 -2
- data/doc/rdoc/files/lib/mongrel/cgi_rb.html +2 -2
- data/doc/rdoc/files/lib/mongrel/command_rb.html +2 -2
- data/doc/rdoc/files/lib/mongrel/configurator_rb.html +1 -1
- data/doc/rdoc/files/lib/mongrel/debug_rb.html +2 -2
- data/doc/rdoc/files/lib/mongrel/handlers_rb.html +3 -2
- data/doc/rdoc/files/lib/mongrel/init_rb.html +2 -2
- data/doc/rdoc/files/lib/mongrel/rails_rb.html +2 -3
- data/doc/rdoc/files/lib/mongrel/stats_rb.html +2 -2
- data/doc/rdoc/files/lib/mongrel/tcphack_rb.html +2 -2
- data/doc/rdoc/files/lib/mongrel_rb.html +5 -3
- data/doc/rdoc/files/lib/mutex_fix_rb.html +108 -0
- data/doc/rdoc/fr_class_index.html +1 -1
- data/doc/rdoc/fr_file_index.html +1 -0
- data/doc/rdoc/fr_method_index.html +151 -148
- data/ext/http11/http11.c +2 -2
- data/lib/mongrel.rb +85 -38
- data/lib/mongrel/camping.rb +17 -4
- data/lib/mongrel/configurator.rb +11 -7
- data/lib/mongrel/handlers.rb +30 -27
- data/lib/mongrel/mime_types.yml +615 -0
- data/lib/mongrel/rails.rb +21 -28
- data/lib/mutex_fix.rb +34 -0
- data/test/test_handlers.rb +16 -4
- data/test/test_http11.rb +8 -0
- data/test/test_request_progress.rb +45 -2
- data/test/test_response.rb +31 -0
- metadata +95 -71
- data/bin/mongrel_rails_service +0 -246
- data/bin/mongrel_rails_svc +0 -307
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000112.html +0 -25
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000113.html +0 -47
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000114.html +0 -34
- data/doc/rdoc/classes/Mongrel/Camping.src/M000039.html +0 -22
- data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000040.html +0 -18
- data/doc/rdoc/classes/Mongrel/Camping/CampingHandler.src/M000041.html +0 -51
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000016.html +0 -24
- data/doc/rdoc/classes/Mongrel/Command/Base.src/M000017.html +0 -42
- data/doc/rdoc/classes/Mongrel/Command/Registry.src/M000029.html +0 -20
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000091.html +0 -27
- data/doc/rdoc/classes/Mongrel/Configurator.src/M000092.html +0 -31
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000049.html +0 -21
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000050.html +0 -43
- data/doc/rdoc/classes/Mongrel/HeaderOut.src/M000065.html +0 -18
- data/doc/rdoc/classes/Mongrel/HttpHandlerPlugin.src/M000013.html +0 -17
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000130.html +0 -47
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000131.html +0 -37
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/M000132.html +0 -29
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000073.html +0 -25
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000074.html +0 -20
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000055.html +0 -25
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000056.html +0 -91
- data/doc/rdoc/classes/Mongrel/Rails/RailsConfigurator.src/M000032.html +0 -37
- data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000035.html +0 -23
- data/doc/rdoc/classes/Mongrel/Rails/RailsHandler.src/M000036.html +0 -54
- data/doc/rdoc/classes/Mongrel/Stats.src/M000137.html +0 -23
- data/doc/rdoc/classes/Mongrel/Stats.src/M000138.html +0 -26
- data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000066.html +0 -18
- data/doc/rdoc/classes/Mongrel/StatusHandler.src/M000067.html +0 -24
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000085.html +0 -18
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000086.html +0 -18
- data/doc/rdoc/classes/MongrelDbg.src/M000005.html +0 -24
- data/doc/rdoc/classes/MongrelDbg.src/M000006.html +0 -20
|
File without changes
|
|
File without changes
|
|
@@ -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#
|
|
112
|
-
delta between the last time you called it. When you&#
|
|
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‘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&#
|
|
117
|
+
It does all of this very fast and doesn‘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>&#
|
|
84
|
+
href="../Mongrel.html">Mongrel</a>‘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
|
|
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#
|
|
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="#
|
|
121
|
-
<a href="#
|
|
122
|
-
<a href="#
|
|
123
|
-
<a href="#
|
|
124
|
-
<a href="#
|
|
125
|
-
<a href="#
|
|
126
|
-
<a href="#
|
|
127
|
-
<a href="#
|
|
128
|
-
<a href="#
|
|
121
|
+
<a href="#M000120">args</a>
|
|
122
|
+
<a href="#M000121">env_table</a>
|
|
123
|
+
<a href="#M000116">header</a>
|
|
124
|
+
<a href="#M000115">new</a>
|
|
125
|
+
<a href="#M000118">out</a>
|
|
126
|
+
<a href="#M000117">send_cookies</a>
|
|
127
|
+
<a href="#M000119">status</a>
|
|
128
|
+
<a href="#M000122">stdinput</a>
|
|
129
|
+
<a href="#M000123">stdoutput</a>
|
|
129
130
|
</div>
|
|
130
131
|
</div>
|
|
131
132
|
|
|
@@ -148,8 +149,8 @@ information on this.
|
|
|
148
149
|
<td class="context-item-value">[ "nph","status","server","connection","type", "charset","length","language","expires"]</td>
|
|
149
150
|
<td width="3em"> </td>
|
|
150
151
|
<td class="context-item-desc">
|
|
151
|
-
these are stripped out of any keys
|
|
152
|
-
href="CGIWrapper.html#
|
|
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"> [RW] </td>
|
|
170
171
|
<td class="context-item-desc">
|
|
171
172
|
Set this to false if you want calls to <a
|
|
172
|
-
href="CGIWrapper.html#
|
|
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-
|
|
198
|
-
<a name="
|
|
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/
|
|
202
|
-
onclick="popupCode('CGIWrapper.src/
|
|
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>&#
|
|
214
|
+
href="../Mongrel.html">Mongrel</a>‘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-
|
|
221
|
-
<a name="
|
|
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/
|
|
225
|
-
onclick="popupCode('CGIWrapper.src/
|
|
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
|
|
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-
|
|
238
|
-
<a name="
|
|
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/
|
|
242
|
-
onclick="popupCode('CGIWrapper.src/
|
|
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#
|
|
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-
|
|
256
|
-
<a name="
|
|
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/
|
|
260
|
-
onclick="popupCode('CGIWrapper.src/
|
|
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 = "text/html")</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
|
|
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 — Mostly ignored. It‘ll output the date. connection —
|
|
272
275
|
Completely ignored. Why is CGI doing this? length — Ignored since <a
|
|
273
|
-
href="../Mongrel.html">Mongrel</a> figures this
|
|
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-
|
|
280
|
-
<a name="
|
|
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/
|
|
284
|
-
onclick="popupCode('CGIWrapper.src/
|
|
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 = "text/html", really_final=@default_really_final) {||| "")| ...}</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
|
|
292
|
-
|
|
293
|
-
href="
|
|
294
|
-
|
|
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#
|
|
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-
|
|
310
|
-
<a name="
|
|
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/
|
|
314
|
-
onclick="popupCode('CGIWrapper.src/
|
|
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 ‘cookie’ setting and sends it over the <a
|
|
322
|
-
href="../Mongrel.html">Mongrel</a>
|
|
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
|
"cookie" 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-
|
|
331
|
-
<a name="
|
|
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/
|
|
335
|
-
onclick="popupCode('CGIWrapper.src/
|
|
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
|
|
343
|
-
|
|
344
|
-
|
|
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‘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-
|
|
350
|
-
<a name="
|
|
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/
|
|
354
|
-
onclick="popupCode('CGIWrapper.src/
|
|
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
|
|
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-
|
|
367
|
-
<a name="
|
|
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/
|
|
371
|
-
onclick="popupCode('CGIWrapper.src/
|
|
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
|
|
379
|
-
just in case
|
|
386
|
+
The <a href="CGIWrapper.html#M000123">stdoutput</a> should be completely
|
|
387
|
+
bypassed but we‘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>
|
|
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>
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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">""</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>
|
|
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>
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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">"text/html"</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">"text/html"</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">"; charset="</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">"charset"</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">""</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>
|
|
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
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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>
|