rack 1.5.5 → 1.6.0.beta
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.
Potentially problematic release.
This version of rack might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/KNOWN-ISSUES +14 -0
- data/README.rdoc +10 -6
- data/Rakefile +3 -4
- data/SPEC +59 -23
- data/lib/rack.rb +2 -1
- data/lib/rack/auth/abstract/request.rb +1 -1
- data/lib/rack/auth/basic.rb +1 -1
- data/lib/rack/auth/digest/md5.rb +1 -1
- data/lib/rack/backports/uri/common_18.rb +1 -1
- data/lib/rack/builder.rb +19 -4
- data/lib/rack/cascade.rb +2 -2
- data/lib/rack/chunked.rb +12 -1
- data/lib/rack/commonlogger.rb +13 -5
- data/lib/rack/conditionalget.rb +14 -2
- data/lib/rack/content_length.rb +5 -1
- data/lib/rack/deflater.rb +52 -13
- data/lib/rack/directory.rb +8 -2
- data/lib/rack/etag.rb +14 -6
- data/lib/rack/file.rb +10 -14
- data/lib/rack/handler.rb +2 -0
- data/lib/rack/handler/fastcgi.rb +4 -1
- data/lib/rack/handler/mongrel.rb +8 -2
- data/lib/rack/handler/scgi.rb +4 -1
- data/lib/rack/handler/thin.rb +8 -2
- data/lib/rack/handler/webrick.rb +46 -6
- data/lib/rack/head.rb +7 -2
- data/lib/rack/lint.rb +73 -25
- data/lib/rack/lobster.rb +8 -3
- data/lib/rack/methodoverride.rb +14 -3
- data/lib/rack/mime.rb +1 -15
- data/lib/rack/mock.rb +15 -7
- data/lib/rack/multipart.rb +2 -2
- data/lib/rack/multipart/parser.rb +107 -53
- data/lib/rack/multipart/uploaded_file.rb +2 -2
- data/lib/rack/nulllogger.rb +21 -2
- data/lib/rack/request.rb +38 -24
- data/lib/rack/response.rb +5 -0
- data/lib/rack/sendfile.rb +10 -5
- data/lib/rack/server.rb +45 -17
- data/lib/rack/session/abstract/id.rb +7 -6
- data/lib/rack/session/cookie.rb +17 -7
- data/lib/rack/session/memcache.rb +4 -4
- data/lib/rack/session/pool.rb +3 -6
- data/lib/rack/showexceptions.rb +20 -11
- data/lib/rack/showstatus.rb +1 -1
- data/lib/rack/static.rb +27 -30
- data/lib/rack/tempfile_reaper.rb +22 -0
- data/lib/rack/urlmap.rb +17 -3
- data/lib/rack/utils.rb +78 -47
- data/lib/rack/utils/okjson.rb +90 -91
- data/rack.gemspec +3 -3
- data/test/multipart/filename_and_no_name +6 -0
- data/test/multipart/invalid_character +6 -0
- data/test/spec_builder.rb +13 -4
- data/test/spec_chunked.rb +16 -0
- data/test/spec_commonlogger.rb +36 -0
- data/test/spec_content_length.rb +3 -1
- data/test/spec_deflater.rb +283 -148
- data/test/spec_etag.rb +11 -2
- data/test/spec_file.rb +11 -3
- data/test/spec_head.rb +2 -0
- data/test/spec_lobster.rb +1 -1
- data/test/spec_mock.rb +8 -0
- data/test/spec_multipart.rb +111 -49
- data/test/spec_request.rb +109 -25
- data/test/spec_response.rb +30 -0
- data/test/spec_server.rb +20 -5
- data/test/spec_session_cookie.rb +45 -2
- data/test/spec_session_memcache.rb +1 -1
- data/test/spec_showexceptions.rb +29 -36
- data/test/spec_showstatus.rb +19 -0
- data/test/spec_tempfile_reaper.rb +63 -0
- data/test/spec_urlmap.rb +23 -0
- data/test/spec_utils.rb +60 -10
- data/test/spec_webrick.rb +41 -0
- metadata +12 -9
- data/test/cgi/lighttpd.errors +0 -1
- data/test/multipart/three_files_three_fields +0 -31
data/test/spec_webrick.rb
CHANGED
@@ -139,5 +139,46 @@ describe Rack::Handler::WEBrick do
|
|
139
139
|
}
|
140
140
|
end
|
141
141
|
|
142
|
+
should "support Rack partial hijack" do
|
143
|
+
io_lambda = lambda{ |io|
|
144
|
+
5.times do
|
145
|
+
io.write "David\r\n"
|
146
|
+
end
|
147
|
+
io.close
|
148
|
+
}
|
149
|
+
|
150
|
+
@server.mount "/partial", Rack::Handler::WEBrick,
|
151
|
+
Rack::Lint.new(lambda{ |req|
|
152
|
+
[
|
153
|
+
200,
|
154
|
+
{"rack.hijack" => io_lambda},
|
155
|
+
[""]
|
156
|
+
]
|
157
|
+
})
|
158
|
+
|
159
|
+
Net::HTTP.start(@host, @port){ |http|
|
160
|
+
res = http.get("/partial")
|
161
|
+
res.body.should.equal "David\r\nDavid\r\nDavid\r\nDavid\r\nDavid\r\n"
|
162
|
+
}
|
163
|
+
end
|
164
|
+
|
165
|
+
should "produce correct HTTP semantics with and without app chunking" do
|
166
|
+
@server.mount "/chunked", Rack::Handler::WEBrick,
|
167
|
+
Rack::Lint.new(lambda{ |req|
|
168
|
+
[
|
169
|
+
200,
|
170
|
+
{"Transfer-Encoding" => "chunked"},
|
171
|
+
["7\r\nchunked\r\n0\r\n\r\n"]
|
172
|
+
]
|
173
|
+
})
|
174
|
+
|
175
|
+
Net::HTTP.start(@host, @port){ |http|
|
176
|
+
res = http.get("/chunked")
|
177
|
+
res["Transfer-Encoding"].should.equal "chunked"
|
178
|
+
res["Content-Length"].should.equal nil
|
179
|
+
res.body.should.equal "chunked"
|
180
|
+
}
|
181
|
+
end
|
182
|
+
|
142
183
|
@server.shutdown
|
143
184
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0.beta
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christian Neukirchen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-08-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bacon
|
@@ -45,7 +45,7 @@ description: |
|
|
45
45
|
servers, web frameworks, and software in between (the so-called
|
46
46
|
middleware) into a single method call.
|
47
47
|
|
48
|
-
Also see http://rack.github.
|
48
|
+
Also see http://rack.github.io/.
|
49
49
|
email: chneukirchen@gmail.com
|
50
50
|
executables:
|
51
51
|
- rackup
|
@@ -129,6 +129,7 @@ files:
|
|
129
129
|
- lib/rack/showexceptions.rb
|
130
130
|
- lib/rack/showstatus.rb
|
131
131
|
- lib/rack/static.rb
|
132
|
+
- lib/rack/tempfile_reaper.rb
|
132
133
|
- lib/rack/urlmap.rb
|
133
134
|
- lib/rack/utils.rb
|
134
135
|
- lib/rack/utils/okjson.rb
|
@@ -145,7 +146,6 @@ files:
|
|
145
146
|
- test/cgi/assets/javascripts/app.js
|
146
147
|
- test/cgi/assets/stylesheets/app.css
|
147
148
|
- test/cgi/lighttpd.conf
|
148
|
-
- test/cgi/lighttpd.errors
|
149
149
|
- test/cgi/rackup_stub.rb
|
150
150
|
- test/cgi/sample_rackup.ru
|
151
151
|
- test/cgi/test
|
@@ -160,6 +160,7 @@ files:
|
|
160
160
|
- test/multipart/fail_16384_nofile
|
161
161
|
- test/multipart/file1.txt
|
162
162
|
- test/multipart/filename_and_modification_param
|
163
|
+
- test/multipart/filename_and_no_name
|
163
164
|
- test/multipart/filename_with_escaped_quotes
|
164
165
|
- test/multipart/filename_with_escaped_quotes_and_modification_param
|
165
166
|
- test/multipart/filename_with_percent_escaped_quotes
|
@@ -168,12 +169,12 @@ files:
|
|
168
169
|
- test/multipart/filename_with_unescaped_percentages3
|
169
170
|
- test/multipart/filename_with_unescaped_quotes
|
170
171
|
- test/multipart/ie
|
172
|
+
- test/multipart/invalid_character
|
171
173
|
- test/multipart/mixed_files
|
172
174
|
- test/multipart/nested
|
173
175
|
- test/multipart/none
|
174
176
|
- test/multipart/semicolon
|
175
177
|
- test/multipart/text
|
176
|
-
- test/multipart/three_files_three_fields
|
177
178
|
- test/multipart/webkit
|
178
179
|
- test/rackup/config.ru
|
179
180
|
- test/registering_handler/rack/handler/registering_myself.rb
|
@@ -220,6 +221,7 @@ files:
|
|
220
221
|
- test/spec_showexceptions.rb
|
221
222
|
- test/spec_showstatus.rb
|
222
223
|
- test/spec_static.rb
|
224
|
+
- test/spec_tempfile_reaper.rb
|
223
225
|
- test/spec_thin.rb
|
224
226
|
- test/spec_urlmap.rb
|
225
227
|
- test/spec_utils.rb
|
@@ -229,7 +231,7 @@ files:
|
|
229
231
|
- test/testrequest.rb
|
230
232
|
- test/unregistered_handler/rack/handler/unregistered.rb
|
231
233
|
- test/unregistered_handler/rack/handler/unregistered_long_one.rb
|
232
|
-
homepage: http://rack.github.
|
234
|
+
homepage: http://rack.github.io/
|
233
235
|
licenses:
|
234
236
|
- MIT
|
235
237
|
metadata: {}
|
@@ -244,12 +246,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
244
246
|
version: '0'
|
245
247
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
246
248
|
requirements:
|
247
|
-
- - "
|
249
|
+
- - ">"
|
248
250
|
- !ruby/object:Gem::Version
|
249
|
-
version:
|
251
|
+
version: 1.3.1
|
250
252
|
requirements: []
|
251
253
|
rubyforge_project: rack
|
252
|
-
rubygems_version: 2.
|
254
|
+
rubygems_version: 2.2.2
|
253
255
|
signing_key:
|
254
256
|
specification_version: 4
|
255
257
|
summary: a modular Ruby webserver interface
|
@@ -297,6 +299,7 @@ test_files:
|
|
297
299
|
- test/spec_showexceptions.rb
|
298
300
|
- test/spec_showstatus.rb
|
299
301
|
- test/spec_static.rb
|
302
|
+
- test/spec_tempfile_reaper.rb
|
300
303
|
- test/spec_thin.rb
|
301
304
|
- test/spec_urlmap.rb
|
302
305
|
- test/spec_utils.rb
|
data/test/cgi/lighttpd.errors
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2015-06-16 14:11:43: (log.c.164) server started
|
@@ -1,31 +0,0 @@
|
|
1
|
-
--AaB03x
|
2
|
-
content-disposition: form-data; name="reply"
|
3
|
-
|
4
|
-
yes
|
5
|
-
--AaB03x
|
6
|
-
content-disposition: form-data; name="to"
|
7
|
-
|
8
|
-
people
|
9
|
-
--AaB03x
|
10
|
-
content-disposition: form-data; name="from"
|
11
|
-
|
12
|
-
others
|
13
|
-
--AaB03x
|
14
|
-
content-disposition: form-data; name="fileupload1"; filename="file1.jpg"
|
15
|
-
Content-Type: image/jpeg
|
16
|
-
Content-Transfer-Encoding: base64
|
17
|
-
|
18
|
-
/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg
|
19
|
-
--AaB03x
|
20
|
-
content-disposition: form-data; name="fileupload2"; filename="file2.jpg"
|
21
|
-
Content-Type: image/jpeg
|
22
|
-
Content-Transfer-Encoding: base64
|
23
|
-
|
24
|
-
/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg
|
25
|
-
--AaB03x
|
26
|
-
content-disposition: form-data; name="fileupload3"; filename="file3.jpg"
|
27
|
-
Content-Type: image/jpeg
|
28
|
-
Content-Transfer-Encoding: base64
|
29
|
-
|
30
|
-
/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg
|
31
|
-
--AaB03x--
|