serverside 0.2.6 → 0.2.7

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 (43) hide show
  1. data/CHANGELOG +22 -16
  2. data/Rakefile +11 -4
  3. data/bin/serverside +1 -1
  4. data/doc/rdoc/classes/Daemon.html +4 -4
  5. data/doc/rdoc/classes/ServerSide.html +10 -10
  6. data/doc/rdoc/classes/ServerSide/HTTP.html +5 -6
  7. data/doc/rdoc/classes/ServerSide/HTTP/Connection.html +24 -22
  8. data/doc/rdoc/classes/ServerSide/HTTP/Request.html +367 -121
  9. data/doc/rdoc/classes/ServerSide/Router.html +58 -58
  10. data/doc/rdoc/classes/ServerSide/StaticFiles.html +60 -49
  11. data/doc/rdoc/classes/ServerSide/StaticFiles/Const.html +12 -2
  12. data/doc/rdoc/classes/ServerSide/Template.html +12 -12
  13. data/doc/rdoc/created.rid +1 -1
  14. data/doc/rdoc/files/CHANGELOG.html +36 -31
  15. data/doc/rdoc/files/COPYING.html +1 -1
  16. data/doc/rdoc/files/README.html +1 -1
  17. data/doc/rdoc/files/lib/serverside/application_rb.html +1 -1
  18. data/doc/rdoc/files/lib/serverside/cluster_rb.html +1 -1
  19. data/doc/rdoc/files/lib/serverside/connection_rb.html +1 -1
  20. data/doc/rdoc/files/lib/serverside/core_ext_rb.html +1 -1
  21. data/doc/rdoc/files/lib/serverside/daemon_rb.html +1 -1
  22. data/doc/rdoc/files/lib/serverside/request_rb.html +8 -1
  23. data/doc/rdoc/files/lib/serverside/routing_rb.html +1 -1
  24. data/doc/rdoc/files/lib/serverside/server_rb.html +1 -1
  25. data/doc/rdoc/files/lib/serverside/static_rb.html +8 -1
  26. data/doc/rdoc/files/lib/serverside/template_rb.html +1 -1
  27. data/doc/rdoc/files/lib/serverside_rb.html +1 -1
  28. data/doc/rdoc/fr_class_index.html +0 -1
  29. data/doc/rdoc/fr_method_index.html +21 -20
  30. data/lib/serverside/connection.rb +6 -4
  31. data/lib/serverside/request.rb +101 -61
  32. data/lib/serverside/static.rb +22 -7
  33. data/test/functional/request_body_test.rb +93 -0
  34. data/test/functional/routing_server.rb +5 -5
  35. data/test/functional/routing_server_test.rb +3 -3
  36. data/test/spec/connection_spec.rb +61 -0
  37. data/test/spec/core_ext_spec.rb +20 -1
  38. data/test/unit/connection_test.rb +9 -9
  39. data/test/unit/request_test.rb +55 -55
  40. data/test/unit/server_test.rb +1 -1
  41. data/test/unit/static_test.rb +24 -25
  42. metadata +60 -60
  43. data/doc/rdoc/classes/ServerSide/HTTP/Const.html +0 -257
@@ -4,7 +4,7 @@ require 'net/http'
4
4
  class ServerTest < Test::Unit::TestCase
5
5
  class DummyRequest < ServerSide::HTTP::Request
6
6
  def respond
7
- @conn << "HTTP/1.1 200\r\nContent-Length: 9\r\n\r\nHi there!"
7
+ @socket << "HTTP/1.1 200\r\nContent-Length: 9\r\n\r\nHi there!"
8
8
  end
9
9
  end
10
10
 
@@ -2,7 +2,7 @@ require File.dirname(__FILE__) + '/../test_helper'
2
2
  require 'stringio'
3
3
  require 'fileutils'
4
4
 
5
- class ConnectionTest < Test::Unit::TestCase
5
+ class StaticTest < Test::Unit::TestCase
6
6
  class Dummy < ServerSide::HTTP::Request
7
7
  def self.static_files
8
8
  @@static_files
@@ -12,7 +12,7 @@ class ConnectionTest < Test::Unit::TestCase
12
12
  @@mime_types
13
13
  end
14
14
 
15
- attr_accessor :conn, :path, :headers
15
+ attr_accessor :path, :socket, :headers
16
16
 
17
17
  def initialize
18
18
  @headers = {}
@@ -23,7 +23,7 @@ class ConnectionTest < Test::Unit::TestCase
23
23
  assert_kind_of Hash, Dummy.static_files
24
24
  Dummy.static_files.clear
25
25
  c = Dummy.new
26
- c.conn = StringIO.new
26
+ c.socket = StringIO.new
27
27
  assert_nil Dummy.static_files[__FILE__]
28
28
  c.serve_file(__FILE__)
29
29
  cache = Dummy.static_files[__FILE__]
@@ -50,10 +50,10 @@ class ConnectionTest < Test::Unit::TestCase
50
50
 
51
51
  def test_serve_file_normal
52
52
  c = Dummy.new
53
- c.conn = StringIO.new
53
+ c.socket = StringIO.new
54
54
  c.serve_file(__FILE__)
55
- c.conn.rewind
56
- resp = c.conn.read
55
+ c.socket.rewind
56
+ resp = c.socket.read
57
57
 
58
58
  assert_equal '200', /HTTP\/1.1\s(.*)\r\n/.match(resp)[1]
59
59
  fc = IO.read(__FILE__)
@@ -69,11 +69,11 @@ class ConnectionTest < Test::Unit::TestCase
69
69
 
70
70
  def test_serve_file_etags
71
71
  c = Dummy.new
72
- c.conn = StringIO.new
72
+ c.socket = StringIO.new
73
73
  Dummy.static_files.clear
74
74
  c.serve_file(__FILE__)
75
- c.conn.rewind
76
- resp = c.conn.read
75
+ c.socket.rewind
76
+ resp = c.socket.read
77
77
 
78
78
  # normal response
79
79
  assert_equal '200', /HTTP\/1.1\s(.*)\r\n/.match(resp)[1]
@@ -87,11 +87,11 @@ class ConnectionTest < Test::Unit::TestCase
87
87
  assert_equal stat.size.to_s,
88
88
  /Content-Length:\s(.*)\r\n/.match(resp)[1]
89
89
 
90
- c.conn = StringIO.new
90
+ c.socket = StringIO.new
91
91
  c.headers[ServerSide::StaticFiles::Const::IfNoneMatch] = etag
92
92
  c.serve_file(__FILE__)
93
- c.conn.rewind
94
- resp = c.conn.read
93
+ c.socket.rewind
94
+ resp = c.socket.read
95
95
 
96
96
  # not modified response
97
97
  assert_equal '304 Not Modified', /HTTP\/1.1\s(.*)\r\n/.match(resp)[1]
@@ -102,14 +102,13 @@ class ConnectionTest < Test::Unit::TestCase
102
102
  assert_equal etag, /ETag:\s(.*)\r\n/.match(resp)[1]
103
103
  assert_equal ServerSide::StaticFiles::Const::MaxAge,
104
104
  /Cache-Control:\s(.*)\r\n/.match(resp)[1]
105
- assert_equal '0', /Content-Length:\s(.*)\r\n/.match(resp)[1]
106
105
 
107
106
  FileUtils.touch(__FILE__)
108
- c.conn = StringIO.new
107
+ c.socket = StringIO.new
109
108
  c.headers[ServerSide::StaticFiles::Const::IfNoneMatch] = etag
110
109
  c.serve_file(__FILE__)
111
- c.conn.rewind
112
- resp = c.conn.read
110
+ c.socket.rewind
111
+ resp = c.socket.read
113
112
 
114
113
  # modified response
115
114
  assert_equal '200', /HTTP\/1.1\s(.*)\r\n/.match(resp)[1]
@@ -128,12 +127,12 @@ class ConnectionTest < Test::Unit::TestCase
128
127
  dir = File.dirname(__FILE__)
129
128
 
130
129
  c = Dummy.new
131
- c.conn = StringIO.new
130
+ c.socket = StringIO.new
132
131
  Dummy.static_files.clear
133
132
  c.path = dir
134
133
  c.serve_dir(dir)
135
- c.conn.rewind
136
- resp = c.conn.read
134
+ c.socket.rewind
135
+ resp = c.socket.read
137
136
 
138
137
  Dir.entries(dir).each do |fn|
139
138
  next if fn == '.'
@@ -145,21 +144,21 @@ class ConnectionTest < Test::Unit::TestCase
145
144
  dir = File.dirname(__FILE__)
146
145
 
147
146
  c = Dummy.new
148
- c.conn = StringIO.new
147
+ c.socket = StringIO.new
149
148
  c.path = dir
150
149
  c.serve_static(dir)
151
- c.conn.rewind
152
- resp = c.conn.read
150
+ c.socket.rewind
151
+ resp = c.socket.read
153
152
 
154
153
  Dir.entries(dir).each do |fn|
155
154
  next if fn == '.'
156
155
  assert_not_nil resp =~ /<a href="#{dir/fn}">(#{fn})<\/a>/
157
156
  end
158
157
 
159
- c.conn = StringIO.new
158
+ c.socket = StringIO.new
160
159
  c.serve_file(__FILE__)
161
- c.conn.rewind
162
- resp = c.conn.read
160
+ c.socket.rewind
161
+ resp = c.socket.read
163
162
 
164
163
  # normal response
165
164
  assert_equal '200', /HTTP\/1.1\s(.*)\r\n/.match(resp)[1]
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.0
2
+ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: serverside
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.2.6
7
- date: 2006-09-30 00:00:00 +03:00
6
+ version: 0.2.7
7
+ date: 2006-10-11 00:00:00 +02:00
8
8
  summary: Performance-oriented web framework.
9
9
  require_paths:
10
10
  - lib
@@ -25,7 +25,6 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
25
25
  platform: ruby
26
26
  signing_key:
27
27
  cert_chain:
28
- post_install_message:
29
28
  authors:
30
29
  - Sharon Rosner
31
30
  files:
@@ -34,87 +33,88 @@ files:
34
33
  - Rakefile
35
34
  - bin/serverside
36
35
  - doc/rdoc
37
- - doc/rdoc/classes
38
36
  - doc/rdoc/created.rid
37
+ - doc/rdoc/rdoc-style.css
39
38
  - doc/rdoc/files
40
- - doc/rdoc/fr_class_index.html
39
+ - doc/rdoc/classes
41
40
  - doc/rdoc/fr_file_index.html
41
+ - doc/rdoc/fr_class_index.html
42
42
  - doc/rdoc/fr_method_index.html
43
43
  - doc/rdoc/index.html
44
- - doc/rdoc/rdoc-style.css
45
- - doc/rdoc/classes/Daemon
46
- - doc/rdoc/classes/Daemon.html
47
- - doc/rdoc/classes/Object.html
44
+ - doc/rdoc/files/README.html
45
+ - doc/rdoc/files/CHANGELOG.html
46
+ - doc/rdoc/files/COPYING.html
47
+ - doc/rdoc/files/lib
48
+ - doc/rdoc/files/lib/serverside_rb.html
49
+ - doc/rdoc/files/lib/serverside
50
+ - doc/rdoc/files/lib/serverside/server_rb.html
51
+ - doc/rdoc/files/lib/serverside/daemon_rb.html
52
+ - doc/rdoc/files/lib/serverside/application_rb.html
53
+ - doc/rdoc/files/lib/serverside/core_ext_rb.html
54
+ - doc/rdoc/files/lib/serverside/connection_rb.html
55
+ - doc/rdoc/files/lib/serverside/cluster_rb.html
56
+ - doc/rdoc/files/lib/serverside/static_rb.html
57
+ - doc/rdoc/files/lib/serverside/routing_rb.html
58
+ - doc/rdoc/files/lib/serverside/template_rb.html
59
+ - doc/rdoc/files/lib/serverside/request_rb.html
60
+ - doc/rdoc/classes/Symbol.html
48
61
  - doc/rdoc/classes/Proc.html
49
- - doc/rdoc/classes/ServerSide
50
- - doc/rdoc/classes/ServerSide.html
62
+ - doc/rdoc/classes/Object.html
51
63
  - doc/rdoc/classes/String.html
52
- - doc/rdoc/classes/Symbol.html
64
+ - doc/rdoc/classes/Daemon.html
65
+ - doc/rdoc/classes/Daemon
66
+ - doc/rdoc/classes/ServerSide.html
67
+ - doc/rdoc/classes/ServerSide
68
+ - doc/rdoc/classes/Daemon/PidFile.html
53
69
  - doc/rdoc/classes/Daemon/Base.html
54
- - doc/rdoc/classes/Daemon/Cluster
55
70
  - doc/rdoc/classes/Daemon/Cluster.html
56
- - doc/rdoc/classes/Daemon/PidFile.html
71
+ - doc/rdoc/classes/Daemon/Cluster
57
72
  - doc/rdoc/classes/Daemon/Cluster/PidFile.html
73
+ - doc/rdoc/classes/ServerSide/StaticFiles.html
74
+ - doc/rdoc/classes/ServerSide/StaticFiles
58
75
  - doc/rdoc/classes/ServerSide/Application.html
59
- - doc/rdoc/classes/ServerSide/HTTP
60
76
  - doc/rdoc/classes/ServerSide/HTTP.html
61
- - doc/rdoc/classes/ServerSide/Router.html
62
- - doc/rdoc/classes/ServerSide/StaticFiles
63
- - doc/rdoc/classes/ServerSide/StaticFiles.html
77
+ - doc/rdoc/classes/ServerSide/HTTP
64
78
  - doc/rdoc/classes/ServerSide/Template.html
65
- - doc/rdoc/classes/ServerSide/HTTP/Connection.html
66
- - doc/rdoc/classes/ServerSide/HTTP/Const.html
67
- - doc/rdoc/classes/ServerSide/HTTP/Request.html
68
- - doc/rdoc/classes/ServerSide/HTTP/Server.html
79
+ - doc/rdoc/classes/ServerSide/Router.html
69
80
  - doc/rdoc/classes/ServerSide/StaticFiles/Const.html
70
- - doc/rdoc/files/CHANGELOG.html
71
- - doc/rdoc/files/COPYING.html
72
- - doc/rdoc/files/lib
73
- - doc/rdoc/files/README.html
74
- - doc/rdoc/files/lib/serverside
75
- - doc/rdoc/files/lib/serverside_rb.html
76
- - doc/rdoc/files/lib/serverside/application_rb.html
77
- - doc/rdoc/files/lib/serverside/cluster_rb.html
78
- - doc/rdoc/files/lib/serverside/connection_rb.html
79
- - doc/rdoc/files/lib/serverside/core_ext_rb.html
80
- - doc/rdoc/files/lib/serverside/daemon_rb.html
81
- - doc/rdoc/files/lib/serverside/request_rb.html
82
- - doc/rdoc/files/lib/serverside/routing_rb.html
83
- - doc/rdoc/files/lib/serverside/server_rb.html
84
- - doc/rdoc/files/lib/serverside/static_rb.html
85
- - doc/rdoc/files/lib/serverside/template_rb.html
81
+ - doc/rdoc/classes/ServerSide/HTTP/Server.html
82
+ - doc/rdoc/classes/ServerSide/HTTP/Request.html
83
+ - doc/rdoc/classes/ServerSide/HTTP/Connection.html
84
+ - test/unit
85
+ - test/test_helper.rb
86
86
  - test/functional
87
87
  - test/spec
88
- - test/test_helper.rb
89
- - test/unit
90
- - test/functional/primitive_static_server_test.rb
91
- - test/functional/routing_server.rb
92
- - test/functional/routing_server_test.rb
93
- - test/functional/static_profile.rb
94
- - test/functional/static_rfuzz.rb
95
- - test/functional/static_server_test.rb
96
- - test/spec/core_ext_spec.rb
97
- - test/unit/cluster_test.rb
98
- - test/unit/connection_test.rb
99
- - test/unit/core_ext_test.rb
100
88
  - test/unit/daemon_test.rb
101
- - test/unit/request_test.rb
102
- - test/unit/routing_test.rb
103
89
  - test/unit/server_test.rb
90
+ - test/unit/core_ext_test.rb
91
+ - test/unit/connection_test.rb
92
+ - test/unit/cluster_test.rb
104
93
  - test/unit/static_test.rb
94
+ - test/unit/routing_test.rb
105
95
  - test/unit/template_test.rb
106
- - lib/serverside
96
+ - test/unit/request_test.rb
97
+ - test/functional/primitive_static_server_test.rb
98
+ - test/functional/static_server_test.rb
99
+ - test/functional/static_profile.rb
100
+ - test/functional/static_rfuzz.rb
101
+ - test/functional/routing_server.rb
102
+ - test/functional/routing_server_test.rb
103
+ - test/functional/request_body_test.rb
104
+ - test/spec/core_ext_spec.rb
105
+ - test/spec/connection_spec.rb
107
106
  - lib/serverside.rb
107
+ - lib/serverside
108
+ - lib/serverside/server.rb
109
+ - lib/serverside/daemon.rb
108
110
  - lib/serverside/application.rb
109
- - lib/serverside/cluster.rb
110
- - lib/serverside/connection.rb
111
111
  - lib/serverside/core_ext.rb
112
- - lib/serverside/daemon.rb
113
- - lib/serverside/request.rb
114
- - lib/serverside/routing.rb
115
- - lib/serverside/server.rb
112
+ - lib/serverside/connection.rb
113
+ - lib/serverside/cluster.rb
116
114
  - lib/serverside/static.rb
115
+ - lib/serverside/routing.rb
117
116
  - lib/serverside/template.rb
117
+ - lib/serverside/request.rb
118
118
  - CHANGELOG
119
119
  test_files: []
120
120
 
@@ -1,257 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Module: ServerSide::HTTP::Const</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Module</strong></td>
53
- <td class="class-name-in-header">ServerSide::HTTP::Const</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../../../files/lib/serverside/request_rb.html">
59
- lib/serverside/request.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- </table>
66
- </div>
67
- <!-- banner header -->
68
-
69
- <div id="bodyContent">
70
-
71
-
72
-
73
- <div id="contextContent">
74
-
75
- <div id="description">
76
- <p>
77
- A bunch of frozen constants to make the parsing of requests and rendering
78
- of responses faster than otherwise.
79
- </p>
80
-
81
- </div>
82
-
83
-
84
- </div>
85
-
86
-
87
- </div>
88
-
89
-
90
- <!-- if includes -->
91
-
92
- <div id="section">
93
-
94
-
95
- <div id="constants-list">
96
- <h3 class="section-bar">Constants</h3>
97
-
98
- <div class="name-list">
99
- <table summary="Constants">
100
- <tr class="top-aligned-row context-row">
101
- <td class="context-item-name">LineBreak</td>
102
- <td>=</td>
103
- <td class="context-item-value">&quot;\r\n&quot;.freeze</td>
104
- </tr>
105
- <tr class="top-aligned-row context-row">
106
- <td class="context-item-name">RequestRegexp</td>
107
- <td>=</td>
108
- <td class="context-item-value">/([A-Za-z0-9]+)\s(\/[^\/\?]*(?:\/[^\/\?]+)*)\/?(?:\?(.*))?\sHTTP\/(.+)\r/.freeze</td>
109
- <td width="3em">&nbsp;</td>
110
- <td class="context-item-desc">
111
- Here&#8217;s a nice one - parses the first line of a request. The expected
112
- format is as follows: &lt;method&gt; &lt;/path&gt;[/][?&lt;query&gt;] <a
113
- href="../HTTP.html">HTTP</a>/&lt;version&gt;
114
-
115
- </td>
116
- </tr>
117
- <tr class="top-aligned-row context-row">
118
- <td class="context-item-name">HeaderRegexp</td>
119
- <td>=</td>
120
- <td class="context-item-value">/([^:]+):\s?(.*)\r\n/.freeze</td>
121
- <td width="3em">&nbsp;</td>
122
- <td class="context-item-desc">
123
- Regexp for parsing headers.
124
-
125
- </td>
126
- </tr>
127
- <tr class="top-aligned-row context-row">
128
- <td class="context-item-name">ContentLength</td>
129
- <td>=</td>
130
- <td class="context-item-value">'Content-Length'.freeze</td>
131
- </tr>
132
- <tr class="top-aligned-row context-row">
133
- <td class="context-item-name">Version_1_1</td>
134
- <td>=</td>
135
- <td class="context-item-value">'1.1'.freeze</td>
136
- </tr>
137
- <tr class="top-aligned-row context-row">
138
- <td class="context-item-name">Connection</td>
139
- <td>=</td>
140
- <td class="context-item-value">'Connection'.freeze</td>
141
- </tr>
142
- <tr class="top-aligned-row context-row">
143
- <td class="context-item-name">Close</td>
144
- <td>=</td>
145
- <td class="context-item-value">'close'.freeze</td>
146
- </tr>
147
- <tr class="top-aligned-row context-row">
148
- <td class="context-item-name">Ampersand</td>
149
- <td>=</td>
150
- <td class="context-item-value">'&amp;'.freeze</td>
151
- </tr>
152
- <tr class="top-aligned-row context-row">
153
- <td class="context-item-name">ParameterRegexp</td>
154
- <td>=</td>
155
- <td class="context-item-value">/(.+)=(.*)/.freeze</td>
156
- <td width="3em">&nbsp;</td>
157
- <td class="context-item-desc">
158
- Regexp for parsing URI parameters.
159
-
160
- </td>
161
- </tr>
162
- <tr class="top-aligned-row context-row">
163
- <td class="context-item-name">EqualSign</td>
164
- <td>=</td>
165
- <td class="context-item-value">'='.freeze</td>
166
- </tr>
167
- <tr class="top-aligned-row context-row">
168
- <td class="context-item-name">StatusClose</td>
169
- <td>=</td>
170
- <td class="context-item-value">&quot;HTTP/1.1 %d\r\nConnection: close\r\nContent-Type: %s\r\n%s%sContent-Length: %d\r\n\r\n&quot;.freeze</td>
171
- </tr>
172
- <tr class="top-aligned-row context-row">
173
- <td class="context-item-name">StatusStream</td>
174
- <td>=</td>
175
- <td class="context-item-value">&quot;HTTP/1.1 %d\r\nConnection: close\r\nContent-Type: %s\r\n%s%s\r\n&quot;.freeze</td>
176
- </tr>
177
- <tr class="top-aligned-row context-row">
178
- <td class="context-item-name">StatusPersist</td>
179
- <td>=</td>
180
- <td class="context-item-value">&quot;HTTP/1.1 %d\r\nContent-Type: %s\r\n%s%sContent-Length: %d\r\n\r\n&quot;.freeze</td>
181
- </tr>
182
- <tr class="top-aligned-row context-row">
183
- <td class="context-item-name">StatusRedirect</td>
184
- <td>=</td>
185
- <td class="context-item-value">&quot;HTTP/1.1 %d\r\nConnection: close\r\nLocation: %s\r\n\r\n&quot;.freeze</td>
186
- </tr>
187
- <tr class="top-aligned-row context-row">
188
- <td class="context-item-name">Header</td>
189
- <td>=</td>
190
- <td class="context-item-value">&quot;%s: %s\r\n&quot;.freeze</td>
191
- </tr>
192
- <tr class="top-aligned-row context-row">
193
- <td class="context-item-name">EmptyString</td>
194
- <td>=</td>
195
- <td class="context-item-value">''.freeze</td>
196
- </tr>
197
- <tr class="top-aligned-row context-row">
198
- <td class="context-item-name">EmptyHash</td>
199
- <td>=</td>
200
- <td class="context-item-value">{}.freeze</td>
201
- </tr>
202
- <tr class="top-aligned-row context-row">
203
- <td class="context-item-name">Slash</td>
204
- <td>=</td>
205
- <td class="context-item-value">'/'.freeze</td>
206
- </tr>
207
- <tr class="top-aligned-row context-row">
208
- <td class="context-item-name">Location</td>
209
- <td>=</td>
210
- <td class="context-item-value">'Location'.freeze</td>
211
- </tr>
212
- <tr class="top-aligned-row context-row">
213
- <td class="context-item-name">Cookie</td>
214
- <td>=</td>
215
- <td class="context-item-value">'Cookie'</td>
216
- </tr>
217
- <tr class="top-aligned-row context-row">
218
- <td class="context-item-name">SetCookie</td>
219
- <td>=</td>
220
- <td class="context-item-value">&quot;Set-Cookie: %s=%s; path=/; expires=%s\r\n&quot;.freeze</td>
221
- </tr>
222
- <tr class="top-aligned-row context-row">
223
- <td class="context-item-name">CookieSplit</td>
224
- <td>=</td>
225
- <td class="context-item-value">/[;,] */n.freeze</td>
226
- </tr>
227
- <tr class="top-aligned-row context-row">
228
- <td class="context-item-name">CookieRegexp</td>
229
- <td>=</td>
230
- <td class="context-item-value">/\s*(.+)=(.*)\s*/.freeze</td>
231
- </tr>
232
- <tr class="top-aligned-row context-row">
233
- <td class="context-item-name">CookieExpiredTime</td>
234
- <td>=</td>
235
- <td class="context-item-value">Time.at(0).freeze</td>
236
- </tr>
237
- </table>
238
- </div>
239
- </div>
240
-
241
-
242
-
243
-
244
-
245
-
246
- <!-- if method_list -->
247
-
248
-
249
- </div>
250
-
251
-
252
- <div id="validator-badges">
253
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
254
- </div>
255
-
256
- </body>
257
- </html>