rack 1.6.13 → 2.0.0.alpha

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rack might be problematic. Click here for more details.

Files changed (138) hide show
  1. checksums.yaml +5 -5
  2. data/HISTORY.md +139 -18
  3. data/README.rdoc +17 -25
  4. data/Rakefile +6 -14
  5. data/SPEC +8 -9
  6. data/contrib/rack_logo.svg +164 -111
  7. data/lib/rack.rb +70 -21
  8. data/lib/rack/auth/digest/request.rb +1 -1
  9. data/lib/rack/body_proxy.rb +14 -9
  10. data/lib/rack/builder.rb +3 -3
  11. data/lib/rack/chunked.rb +5 -5
  12. data/lib/rack/{commonlogger.rb → common_logger.rb} +2 -2
  13. data/lib/rack/{conditionalget.rb → conditional_get.rb} +0 -0
  14. data/lib/rack/content_length.rb +2 -2
  15. data/lib/rack/deflater.rb +4 -4
  16. data/lib/rack/directory.rb +49 -55
  17. data/lib/rack/etag.rb +2 -1
  18. data/lib/rack/events.rb +154 -0
  19. data/lib/rack/file.rb +55 -40
  20. data/lib/rack/handler.rb +2 -24
  21. data/lib/rack/handler/cgi.rb +15 -16
  22. data/lib/rack/handler/fastcgi.rb +13 -14
  23. data/lib/rack/handler/lsws.rb +11 -11
  24. data/lib/rack/handler/scgi.rb +15 -15
  25. data/lib/rack/handler/thin.rb +3 -0
  26. data/lib/rack/handler/webrick.rb +22 -24
  27. data/lib/rack/head.rb +15 -17
  28. data/lib/rack/lint.rb +38 -38
  29. data/lib/rack/lobster.rb +1 -1
  30. data/lib/rack/lock.rb +6 -10
  31. data/lib/rack/logger.rb +2 -2
  32. data/lib/rack/media_type.rb +38 -0
  33. data/lib/rack/{methodoverride.rb → method_override.rb} +4 -11
  34. data/lib/rack/mime.rb +18 -5
  35. data/lib/rack/mock.rb +35 -52
  36. data/lib/rack/multipart.rb +35 -6
  37. data/lib/rack/multipart/generator.rb +4 -4
  38. data/lib/rack/multipart/parser.rb +273 -158
  39. data/lib/rack/multipart/uploaded_file.rb +1 -2
  40. data/lib/rack/{nulllogger.rb → null_logger.rb} +1 -1
  41. data/lib/rack/query_parser.rb +174 -0
  42. data/lib/rack/recursive.rb +8 -8
  43. data/lib/rack/reloader.rb +1 -2
  44. data/lib/rack/request.rb +370 -304
  45. data/lib/rack/response.rb +129 -56
  46. data/lib/rack/rewindable_input.rb +1 -12
  47. data/lib/rack/runtime.rb +10 -18
  48. data/lib/rack/sendfile.rb +5 -7
  49. data/lib/rack/server.rb +31 -25
  50. data/lib/rack/session/abstract/id.rb +93 -135
  51. data/lib/rack/session/cookie.rb +26 -28
  52. data/lib/rack/session/memcache.rb +8 -14
  53. data/lib/rack/session/pool.rb +14 -21
  54. data/lib/rack/show_exceptions.rb +386 -0
  55. data/lib/rack/{showstatus.rb → show_status.rb} +3 -3
  56. data/lib/rack/static.rb +30 -5
  57. data/lib/rack/tempfile_reaper.rb +2 -2
  58. data/lib/rack/urlmap.rb +13 -14
  59. data/lib/rack/utils.rb +128 -221
  60. data/rack.gemspec +9 -5
  61. data/test/builder/an_underscore_app.rb +5 -0
  62. data/test/builder/options.ru +1 -1
  63. data/test/cgi/test.fcgi +1 -0
  64. data/test/cgi/test.gz +0 -0
  65. data/test/helper.rb +31 -0
  66. data/test/multipart/filename_with_encoded_words +7 -0
  67. data/test/multipart/{filename_with_null_byte → filename_with_single_quote} +1 -1
  68. data/test/multipart/quoted +15 -0
  69. data/test/multipart/rack-logo.png +0 -0
  70. data/test/registering_handler/rack/handler/registering_myself.rb +1 -1
  71. data/test/spec_auth_basic.rb +20 -19
  72. data/test/spec_auth_digest.rb +47 -46
  73. data/test/spec_body_proxy.rb +27 -27
  74. data/test/spec_builder.rb +51 -41
  75. data/test/spec_cascade.rb +24 -22
  76. data/test/spec_cgi.rb +49 -67
  77. data/test/spec_chunked.rb +36 -34
  78. data/test/{spec_commonlogger.rb → spec_common_logger.rb} +23 -21
  79. data/test/{spec_conditionalget.rb → spec_conditional_get.rb} +29 -28
  80. data/test/spec_config.rb +3 -2
  81. data/test/spec_content_length.rb +18 -17
  82. data/test/spec_content_type.rb +13 -12
  83. data/test/spec_deflater.rb +66 -40
  84. data/test/spec_directory.rb +72 -27
  85. data/test/spec_etag.rb +32 -31
  86. data/test/spec_events.rb +133 -0
  87. data/test/spec_fastcgi.rb +50 -72
  88. data/test/spec_file.rb +96 -77
  89. data/test/spec_handler.rb +19 -34
  90. data/test/spec_head.rb +15 -14
  91. data/test/spec_lint.rb +162 -197
  92. data/test/spec_lobster.rb +24 -23
  93. data/test/spec_lock.rb +69 -39
  94. data/test/spec_logger.rb +4 -3
  95. data/test/spec_media_type.rb +42 -0
  96. data/test/spec_method_override.rb +83 -0
  97. data/test/spec_mime.rb +19 -19
  98. data/test/spec_mock.rb +196 -151
  99. data/test/spec_multipart.rb +310 -202
  100. data/test/{spec_nulllogger.rb → spec_null_logger.rb} +5 -4
  101. data/test/spec_recursive.rb +17 -14
  102. data/test/spec_request.rb +763 -607
  103. data/test/spec_response.rb +209 -156
  104. data/test/spec_rewindable_input.rb +50 -40
  105. data/test/spec_runtime.rb +11 -10
  106. data/test/spec_sendfile.rb +30 -35
  107. data/test/spec_server.rb +78 -52
  108. data/test/spec_session_abstract_id.rb +11 -33
  109. data/test/spec_session_cookie.rb +97 -65
  110. data/test/spec_session_memcache.rb +63 -101
  111. data/test/spec_session_pool.rb +48 -84
  112. data/test/spec_show_exceptions.rb +80 -0
  113. data/test/{spec_showstatus.rb → spec_show_status.rb} +36 -35
  114. data/test/spec_static.rb +71 -32
  115. data/test/spec_tempfile_reaper.rb +11 -10
  116. data/test/spec_thin.rb +55 -50
  117. data/test/spec_urlmap.rb +79 -78
  118. data/test/spec_utils.rb +417 -345
  119. data/test/spec_version.rb +2 -8
  120. data/test/spec_webrick.rb +77 -67
  121. data/test/static/foo.html +1 -0
  122. data/test/testrequest.rb +1 -1
  123. data/test/unregistered_handler/rack/handler/unregistered.rb +1 -1
  124. data/test/unregistered_handler/rack/handler/unregistered_long_one.rb +1 -1
  125. metadata +116 -71
  126. data/KNOWN-ISSUES +0 -44
  127. data/lib/rack/backports/uri/common_18.rb +0 -56
  128. data/lib/rack/backports/uri/common_192.rb +0 -52
  129. data/lib/rack/backports/uri/common_193.rb +0 -29
  130. data/lib/rack/handler/evented_mongrel.rb +0 -8
  131. data/lib/rack/handler/mongrel.rb +0 -106
  132. data/lib/rack/handler/swiftiplied_mongrel.rb +0 -8
  133. data/lib/rack/showexceptions.rb +0 -387
  134. data/lib/rack/utils/okjson.rb +0 -600
  135. data/test/spec_methodoverride.rb +0 -111
  136. data/test/spec_mongrel.rb +0 -182
  137. data/test/spec_session_persisted_secure_secure_session_hash.rb +0 -73
  138. data/test/spec_showexceptions.rb +0 -98
@@ -1,17 +1,11 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ require 'minitest/autorun'
2
3
  require 'rack'
3
4
 
4
5
  describe Rack do
5
6
  describe 'version' do
6
7
  it 'defaults to a hard-coded api version' do
7
- Rack.version.should.equal("1.3")
8
- end
9
- end
10
- describe 'release' do
11
- it 'matches version in .gemspec' do
12
- gemspec_path = File.join(File.dirname(File.expand_path(__FILE__)), '../rack.gemspec')
13
- gemspec = Gem::Specification.load(gemspec_path)
14
- Rack.release.split('.').take(2).should.equal gemspec.version.to_s.split('.').take(2)
8
+ Rack.version.must_equal "1.3"
15
9
  end
16
10
  end
17
11
  end
@@ -1,92 +1,95 @@
1
+ require 'minitest/autorun'
1
2
  require 'rack/mock'
3
+ require 'concurrent/atomic/count_down_latch'
2
4
  require File.expand_path('../testrequest', __FILE__)
3
5
 
4
6
  Thread.abort_on_exception = true
5
7
 
6
8
  describe Rack::Handler::WEBrick do
7
- extend TestRequest::Helpers
9
+ include TestRequest::Helpers
8
10
 
11
+ before do
9
12
  @server = WEBrick::HTTPServer.new(:Host => @host='127.0.0.1',
10
13
  :Port => @port=9202,
11
14
  :Logger => WEBrick::Log.new(nil, WEBrick::BasicLog::WARN),
12
15
  :AccessLog => [])
13
16
  @server.mount "/test", Rack::Handler::WEBrick,
14
17
  Rack::Lint.new(TestRequest.new)
15
- Thread.new { @server.start }
18
+ @thread = Thread.new { @server.start }
16
19
  trap(:INT) { @server.shutdown }
20
+ end
17
21
 
18
- should "respond" do
19
- lambda {
20
- GET("/test")
21
- }.should.not.raise
22
+ it "respond" do
23
+ GET("/test")
24
+ status.must_equal 200
22
25
  end
23
26
 
24
- should "be a WEBrick" do
27
+ it "be a WEBrick" do
25
28
  GET("/test")
26
- status.should.equal 200
27
- response["SERVER_SOFTWARE"].should =~ /WEBrick/
28
- response["HTTP_VERSION"].should.equal "HTTP/1.1"
29
- response["SERVER_PROTOCOL"].should.equal "HTTP/1.1"
30
- response["SERVER_PORT"].should.equal "9202"
31
- response["SERVER_NAME"].should.equal "127.0.0.1"
29
+ status.must_equal 200
30
+ response["SERVER_SOFTWARE"].must_match(/WEBrick/)
31
+ response["HTTP_VERSION"].must_equal "HTTP/1.1"
32
+ response["SERVER_PROTOCOL"].must_equal "HTTP/1.1"
33
+ response["SERVER_PORT"].must_equal "9202"
34
+ response["SERVER_NAME"].must_equal "127.0.0.1"
32
35
  end
33
36
 
34
- should "have rack headers" do
37
+ it "have rack headers" do
35
38
  GET("/test")
36
- response["rack.version"].should.equal [1,3]
37
- response["rack.multithread"].should.be.true
38
- response["rack.multiprocess"].should.be.false
39
- response["rack.run_once"].should.be.false
39
+ response["rack.version"].must_equal [1,3]
40
+ response["rack.multithread"].must_equal true
41
+ assert_equal false, response["rack.multiprocess"]
42
+ assert_equal false, response["rack.run_once"]
40
43
  end
41
44
 
42
- should "have CGI headers on GET" do
45
+ it "have CGI headers on GET" do
43
46
  GET("/test")
44
- response["REQUEST_METHOD"].should.equal "GET"
45
- response["SCRIPT_NAME"].should.equal "/test"
46
- response["REQUEST_PATH"].should.equal "/test"
47
- response["PATH_INFO"].should.be.equal ""
48
- response["QUERY_STRING"].should.equal ""
49
- response["test.postdata"].should.equal ""
47
+ response["REQUEST_METHOD"].must_equal "GET"
48
+ response["SCRIPT_NAME"].must_equal "/test"
49
+ response["REQUEST_PATH"].must_equal "/test"
50
+ response["PATH_INFO"].must_equal ""
51
+ response["QUERY_STRING"].must_equal ""
52
+ response["test.postdata"].must_equal ""
50
53
 
51
54
  GET("/test/foo?quux=1")
52
- response["REQUEST_METHOD"].should.equal "GET"
53
- response["SCRIPT_NAME"].should.equal "/test"
54
- response["REQUEST_PATH"].should.equal "/test/foo"
55
- response["PATH_INFO"].should.equal "/foo"
56
- response["QUERY_STRING"].should.equal "quux=1"
55
+ response["REQUEST_METHOD"].must_equal "GET"
56
+ response["SCRIPT_NAME"].must_equal "/test"
57
+ response["REQUEST_PATH"].must_equal "/test/foo"
58
+ response["PATH_INFO"].must_equal "/foo"
59
+ response["QUERY_STRING"].must_equal "quux=1"
57
60
 
58
61
  GET("/test/foo%25encoding?quux=1")
59
- response["REQUEST_METHOD"].should.equal "GET"
60
- response["SCRIPT_NAME"].should.equal "/test"
61
- response["REQUEST_PATH"].should.equal "/test/foo%25encoding"
62
- response["PATH_INFO"].should.equal "/foo%25encoding"
63
- response["QUERY_STRING"].should.equal "quux=1"
62
+ response["REQUEST_METHOD"].must_equal "GET"
63
+ response["SCRIPT_NAME"].must_equal "/test"
64
+ response["REQUEST_PATH"].must_equal "/test/foo%25encoding"
65
+ response["PATH_INFO"].must_equal "/foo%25encoding"
66
+ response["QUERY_STRING"].must_equal "quux=1"
64
67
  end
65
68
 
66
- should "have CGI headers on POST" do
69
+ it "have CGI headers on POST" do
67
70
  POST("/test", {"rack-form-data" => "23"}, {'X-test-header' => '42'})
68
- status.should.equal 200
69
- response["REQUEST_METHOD"].should.equal "POST"
70
- response["SCRIPT_NAME"].should.equal "/test"
71
- response["REQUEST_PATH"].should.equal "/test"
72
- response["PATH_INFO"].should.equal ""
73
- response["QUERY_STRING"].should.equal ""
74
- response["HTTP_X_TEST_HEADER"].should.equal "42"
75
- response["test.postdata"].should.equal "rack-form-data=23"
71
+ status.must_equal 200
72
+ response["REQUEST_METHOD"].must_equal "POST"
73
+ response["SCRIPT_NAME"].must_equal "/test"
74
+ response["REQUEST_PATH"].must_equal "/test"
75
+ response["PATH_INFO"].must_equal ""
76
+ response["QUERY_STRING"].must_equal ""
77
+ response["HTTP_X_TEST_HEADER"].must_equal "42"
78
+ response["test.postdata"].must_equal "rack-form-data=23"
76
79
  end
77
80
 
78
- should "support HTTP auth" do
81
+ it "support HTTP auth" do
79
82
  GET("/test", {:user => "ruth", :passwd => "secret"})
80
- response["HTTP_AUTHORIZATION"].should.equal "Basic cnV0aDpzZWNyZXQ="
83
+ response["HTTP_AUTHORIZATION"].must_equal "Basic cnV0aDpzZWNyZXQ="
81
84
  end
82
85
 
83
- should "set status" do
86
+ it "set status" do
84
87
  GET("/test?secret")
85
- status.should.equal 403
86
- response["rack.url_scheme"].should.equal "http"
88
+ status.must_equal 403
89
+ response["rack.url_scheme"].must_equal "http"
87
90
  end
88
91
 
89
- should "correctly set cookies" do
92
+ it "correctly set cookies" do
90
93
  @server.mount "/cookie-test", Rack::Handler::WEBrick,
91
94
  Rack::Lint.new(lambda { |req|
92
95
  res = Rack::Response.new
@@ -97,14 +100,16 @@ describe Rack::Handler::WEBrick do
97
100
 
98
101
  Net::HTTP.start(@host, @port) { |http|
99
102
  res = http.get("/cookie-test")
100
- res.code.to_i.should.equal 200
101
- res.get_fields("set-cookie").should.equal ["one=1", "two=2"]
103
+ res.code.to_i.must_equal 200
104
+ res.get_fields("set-cookie").must_equal ["one=1", "two=2"]
102
105
  }
103
106
  end
104
107
 
105
- should "provide a .run" do
108
+ it "provide a .run" do
106
109
  block_ran = false
107
- catch(:done) {
110
+ latch = Concurrent::CountDownLatch.new 1
111
+
112
+ t = Thread.new do
108
113
  Rack::Handler::WEBrick.run(lambda {},
109
114
  {
110
115
  :Host => '127.0.0.1',
@@ -112,16 +117,18 @@ describe Rack::Handler::WEBrick do
112
117
  :Logger => WEBrick::Log.new(nil, WEBrick::BasicLog::WARN),
113
118
  :AccessLog => []}) { |server|
114
119
  block_ran = true
115
- server.should.be.kind_of WEBrick::HTTPServer
120
+ assert_kind_of WEBrick::HTTPServer, server
116
121
  @s = server
117
- throw :done
122
+ latch.count_down
118
123
  }
119
- }
120
- block_ran.should.be.true
124
+ end
125
+
126
+ latch.wait
121
127
  @s.shutdown
128
+ t.join
122
129
  end
123
130
 
124
- should "return repeated headers" do
131
+ it "return repeated headers" do
125
132
  @server.mount "/headers", Rack::Handler::WEBrick,
126
133
  Rack::Lint.new(lambda { |req|
127
134
  [
@@ -134,12 +141,12 @@ describe Rack::Handler::WEBrick do
134
141
 
135
142
  Net::HTTP.start(@host, @port) { |http|
136
143
  res = http.get("/headers")
137
- res.code.to_i.should.equal 401
138
- res["www-authenticate"].should.equal "Bar realm=X, Baz realm=Y"
144
+ res.code.to_i.must_equal 401
145
+ res["www-authenticate"].must_equal "Bar realm=X, Baz realm=Y"
139
146
  }
140
147
  end
141
148
 
142
- should "support Rack partial hijack" do
149
+ it "support Rack partial hijack" do
143
150
  io_lambda = lambda{ |io|
144
151
  5.times do
145
152
  io.write "David\r\n"
@@ -158,11 +165,11 @@ describe Rack::Handler::WEBrick do
158
165
 
159
166
  Net::HTTP.start(@host, @port){ |http|
160
167
  res = http.get("/partial")
161
- res.body.should.equal "David\r\nDavid\r\nDavid\r\nDavid\r\nDavid\r\n"
168
+ res.body.must_equal "David\r\nDavid\r\nDavid\r\nDavid\r\nDavid\r\n"
162
169
  }
163
170
  end
164
171
 
165
- should "produce correct HTTP semantics with and without app chunking" do
172
+ it "produce correct HTTP semantics with and without app chunking" do
166
173
  @server.mount "/chunked", Rack::Handler::WEBrick,
167
174
  Rack::Lint.new(lambda{ |req|
168
175
  [
@@ -174,11 +181,14 @@ describe Rack::Handler::WEBrick do
174
181
 
175
182
  Net::HTTP.start(@host, @port){ |http|
176
183
  res = http.get("/chunked")
177
- res["Transfer-Encoding"].should.equal "chunked"
178
- res["Content-Length"].should.equal nil
179
- res.body.should.equal "chunked"
184
+ res["Transfer-Encoding"].must_equal "chunked"
185
+ res["Content-Length"].must_equal nil
186
+ res.body.must_equal "chunked"
180
187
  }
181
188
  end
182
189
 
190
+ after do
183
191
  @server.shutdown
192
+ @thread.join
193
+ end
184
194
  end
@@ -0,0 +1 @@
1
+ foo.html!
@@ -12,7 +12,7 @@ class TestRequest
12
12
  # This may in the future want to replace with a dummy value instead.
13
13
  minienv.delete_if { |k,v| NOSERIALIZE.any? { |c| v.kind_of?(c) } }
14
14
  body = minienv.to_yaml
15
- size = body.respond_to?(:bytesize) ? body.bytesize : body.size
15
+ size = body.bytesize
16
16
  [status, {"Content-Type" => "text/yaml", "Content-Length" => size.to_s}, [body]]
17
17
  end
18
18
 
@@ -4,4 +4,4 @@ module Rack
4
4
  class Unregistered
5
5
  end
6
6
  end
7
- end
7
+ end
@@ -4,4 +4,4 @@ module Rack
4
4
  class UnregisteredLongOne
5
5
  end
6
6
  end
7
- end
7
+ end
metadata CHANGED
@@ -1,17 +1,59 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.13
4
+ version: 2.0.0.alpha
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Neukirchen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-08 00:00:00.000000000 Z
11
+ date: 2015-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bacon
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest-sprint
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: concurrent-ruby
15
57
  requirement: !ruby/object:Gem::Requirement
16
58
  requirements:
17
59
  - - ">="
@@ -52,12 +94,10 @@ executables:
52
94
  extensions: []
53
95
  extra_rdoc_files:
54
96
  - README.rdoc
55
- - KNOWN-ISSUES
56
97
  - HISTORY.md
57
98
  files:
58
99
  - COPYING
59
100
  - HISTORY.md
60
- - KNOWN-ISSUES
61
101
  - README.rdoc
62
102
  - Rakefile
63
103
  - SPEC
@@ -77,30 +117,25 @@ files:
77
117
  - lib/rack/auth/digest/nonce.rb
78
118
  - lib/rack/auth/digest/params.rb
79
119
  - lib/rack/auth/digest/request.rb
80
- - lib/rack/backports/uri/common_18.rb
81
- - lib/rack/backports/uri/common_192.rb
82
- - lib/rack/backports/uri/common_193.rb
83
120
  - lib/rack/body_proxy.rb
84
121
  - lib/rack/builder.rb
85
122
  - lib/rack/cascade.rb
86
123
  - lib/rack/chunked.rb
87
- - lib/rack/commonlogger.rb
88
- - lib/rack/conditionalget.rb
124
+ - lib/rack/common_logger.rb
125
+ - lib/rack/conditional_get.rb
89
126
  - lib/rack/config.rb
90
127
  - lib/rack/content_length.rb
91
128
  - lib/rack/content_type.rb
92
129
  - lib/rack/deflater.rb
93
130
  - lib/rack/directory.rb
94
131
  - lib/rack/etag.rb
132
+ - lib/rack/events.rb
95
133
  - lib/rack/file.rb
96
134
  - lib/rack/handler.rb
97
135
  - lib/rack/handler/cgi.rb
98
- - lib/rack/handler/evented_mongrel.rb
99
136
  - lib/rack/handler/fastcgi.rb
100
137
  - lib/rack/handler/lsws.rb
101
- - lib/rack/handler/mongrel.rb
102
138
  - lib/rack/handler/scgi.rb
103
- - lib/rack/handler/swiftiplied_mongrel.rb
104
139
  - lib/rack/handler/thin.rb
105
140
  - lib/rack/handler/webrick.rb
106
141
  - lib/rack/head.rb
@@ -108,14 +143,16 @@ files:
108
143
  - lib/rack/lobster.rb
109
144
  - lib/rack/lock.rb
110
145
  - lib/rack/logger.rb
111
- - lib/rack/methodoverride.rb
146
+ - lib/rack/media_type.rb
147
+ - lib/rack/method_override.rb
112
148
  - lib/rack/mime.rb
113
149
  - lib/rack/mock.rb
114
150
  - lib/rack/multipart.rb
115
151
  - lib/rack/multipart/generator.rb
116
152
  - lib/rack/multipart/parser.rb
117
153
  - lib/rack/multipart/uploaded_file.rb
118
- - lib/rack/nulllogger.rb
154
+ - lib/rack/null_logger.rb
155
+ - lib/rack/query_parser.rb
119
156
  - lib/rack/recursive.rb
120
157
  - lib/rack/reloader.rb
121
158
  - lib/rack/request.rb
@@ -128,14 +165,14 @@ files:
128
165
  - lib/rack/session/cookie.rb
129
166
  - lib/rack/session/memcache.rb
130
167
  - lib/rack/session/pool.rb
131
- - lib/rack/showexceptions.rb
132
- - lib/rack/showstatus.rb
168
+ - lib/rack/show_exceptions.rb
169
+ - lib/rack/show_status.rb
133
170
  - lib/rack/static.rb
134
171
  - lib/rack/tempfile_reaper.rb
135
172
  - lib/rack/urlmap.rb
136
173
  - lib/rack/utils.rb
137
- - lib/rack/utils/okjson.rb
138
174
  - rack.gemspec
175
+ - test/builder/an_underscore_app.rb
139
176
  - test/builder/anything.rb
140
177
  - test/builder/comment.ru
141
178
  - test/builder/end.ru
@@ -153,8 +190,10 @@ files:
153
190
  - test/cgi/test
154
191
  - test/cgi/test+directory/test+file
155
192
  - test/cgi/test.fcgi
193
+ - test/cgi/test.gz
156
194
  - test/cgi/test.ru
157
195
  - test/gemloader.rb
196
+ - test/helper.rb
158
197
  - test/multipart/bad_robots
159
198
  - test/multipart/binary
160
199
  - test/multipart/content_type_and_no_filename
@@ -163,10 +202,11 @@ files:
163
202
  - test/multipart/file1.txt
164
203
  - test/multipart/filename_and_modification_param
165
204
  - test/multipart/filename_and_no_name
205
+ - test/multipart/filename_with_encoded_words
166
206
  - test/multipart/filename_with_escaped_quotes
167
207
  - test/multipart/filename_with_escaped_quotes_and_modification_param
168
- - test/multipart/filename_with_null_byte
169
208
  - test/multipart/filename_with_percent_escaped_quotes
209
+ - test/multipart/filename_with_single_quote
170
210
  - test/multipart/filename_with_unescaped_percentages
171
211
  - test/multipart/filename_with_unescaped_percentages2
172
212
  - test/multipart/filename_with_unescaped_percentages3
@@ -176,6 +216,8 @@ files:
176
216
  - test/multipart/mixed_files
177
217
  - test/multipart/nested
178
218
  - test/multipart/none
219
+ - test/multipart/quoted
220
+ - test/multipart/rack-logo.png
179
221
  - test/multipart/semicolon
180
222
  - test/multipart/text
181
223
  - test/multipart/three_files_three_fields
@@ -189,14 +231,15 @@ files:
189
231
  - test/spec_cascade.rb
190
232
  - test/spec_cgi.rb
191
233
  - test/spec_chunked.rb
192
- - test/spec_commonlogger.rb
193
- - test/spec_conditionalget.rb
234
+ - test/spec_common_logger.rb
235
+ - test/spec_conditional_get.rb
194
236
  - test/spec_config.rb
195
237
  - test/spec_content_length.rb
196
238
  - test/spec_content_type.rb
197
239
  - test/spec_deflater.rb
198
240
  - test/spec_directory.rb
199
241
  - test/spec_etag.rb
242
+ - test/spec_events.rb
200
243
  - test/spec_fastcgi.rb
201
244
  - test/spec_file.rb
202
245
  - test/spec_handler.rb
@@ -205,12 +248,12 @@ files:
205
248
  - test/spec_lobster.rb
206
249
  - test/spec_lock.rb
207
250
  - test/spec_logger.rb
208
- - test/spec_methodoverride.rb
251
+ - test/spec_media_type.rb
252
+ - test/spec_method_override.rb
209
253
  - test/spec_mime.rb
210
254
  - test/spec_mock.rb
211
- - test/spec_mongrel.rb
212
255
  - test/spec_multipart.rb
213
- - test/spec_nulllogger.rb
256
+ - test/spec_null_logger.rb
214
257
  - test/spec_recursive.rb
215
258
  - test/spec_request.rb
216
259
  - test/spec_response.rb
@@ -221,10 +264,9 @@ files:
221
264
  - test/spec_session_abstract_id.rb
222
265
  - test/spec_session_cookie.rb
223
266
  - test/spec_session_memcache.rb
224
- - test/spec_session_persisted_secure_secure_session_hash.rb
225
267
  - test/spec_session_pool.rb
226
- - test/spec_showexceptions.rb
227
- - test/spec_showstatus.rb
268
+ - test/spec_show_exceptions.rb
269
+ - test/spec_show_status.rb
228
270
  - test/spec_static.rb
229
271
  - test/spec_tempfile_reaper.rb
230
272
  - test/spec_thin.rb
@@ -233,6 +275,7 @@ files:
233
275
  - test/spec_version.rb
234
276
  - test/spec_webrick.rb
235
277
  - test/static/another/index.html
278
+ - test/static/foo.html
236
279
  - test/static/index.html
237
280
  - test/testrequest.rb
238
281
  - test/unregistered_handler/rack/handler/unregistered.rb
@@ -249,65 +292,67 @@ required_ruby_version: !ruby/object:Gem::Requirement
249
292
  requirements:
250
293
  - - ">="
251
294
  - !ruby/object:Gem::Version
252
- version: '0'
295
+ version: 2.2.2
253
296
  required_rubygems_version: !ruby/object:Gem::Requirement
254
297
  requirements:
255
- - - ">="
298
+ - - ">"
256
299
  - !ruby/object:Gem::Version
257
- version: '0'
300
+ version: 1.3.1
258
301
  requirements: []
259
- rubygems_version: 3.1.2
302
+ rubyforge_project:
303
+ rubygems_version: 2.5.1
260
304
  signing_key:
261
305
  specification_version: 4
262
306
  summary: a modular Ruby webserver interface
263
307
  test_files:
264
- - test/spec_multipart.rb
308
+ - test/spec_auth_basic.rb
309
+ - test/spec_auth_digest.rb
310
+ - test/spec_body_proxy.rb
311
+ - test/spec_builder.rb
312
+ - test/spec_cascade.rb
313
+ - test/spec_cgi.rb
314
+ - test/spec_chunked.rb
315
+ - test/spec_common_logger.rb
316
+ - test/spec_conditional_get.rb
317
+ - test/spec_config.rb
318
+ - test/spec_content_length.rb
319
+ - test/spec_content_type.rb
265
320
  - test/spec_deflater.rb
266
- - test/spec_static.rb
267
- - test/spec_session_cookie.rb
268
- - test/spec_commonlogger.rb
269
- - test/spec_session_pool.rb
270
- - test/spec_methodoverride.rb
321
+ - test/spec_directory.rb
271
322
  - test/spec_etag.rb
272
- - test/spec_version.rb
323
+ - test/spec_events.rb
324
+ - test/spec_fastcgi.rb
325
+ - test/spec_file.rb
273
326
  - test/spec_handler.rb
274
- - test/spec_thin.rb
275
- - test/spec_showexceptions.rb
276
- - test/spec_session_abstract_id.rb
327
+ - test/spec_head.rb
328
+ - test/spec_lint.rb
329
+ - test/spec_lobster.rb
330
+ - test/spec_lock.rb
331
+ - test/spec_logger.rb
332
+ - test/spec_media_type.rb
333
+ - test/spec_method_override.rb
277
334
  - test/spec_mime.rb
335
+ - test/spec_mock.rb
336
+ - test/spec_multipart.rb
337
+ - test/spec_null_logger.rb
278
338
  - test/spec_recursive.rb
279
- - test/spec_cgi.rb
280
- - test/spec_content_type.rb
281
339
  - test/spec_request.rb
282
- - test/spec_showstatus.rb
283
- - test/spec_chunked.rb
340
+ - test/spec_response.rb
341
+ - test/spec_rewindable_input.rb
284
342
  - test/spec_runtime.rb
285
- - test/spec_session_persisted_secure_secure_session_hash.rb
286
- - test/spec_fastcgi.rb
287
- - test/spec_builder.rb
288
- - test/spec_config.rb
289
- - test/spec_mongrel.rb
290
- - test/spec_utils.rb
291
343
  - test/spec_sendfile.rb
292
- - test/spec_lobster.rb
293
- - test/spec_lint.rb
294
- - test/spec_tempfile_reaper.rb
295
- - test/spec_mock.rb
296
- - test/spec_conditionalget.rb
297
344
  - test/spec_server.rb
298
- - test/spec_directory.rb
299
- - test/spec_webrick.rb
300
- - test/spec_response.rb
301
- - test/spec_file.rb
302
- - test/spec_body_proxy.rb
303
- - test/spec_logger.rb
304
- - test/spec_auth_digest.rb
305
- - test/spec_urlmap.rb
306
- - test/spec_nulllogger.rb
307
- - test/spec_cascade.rb
308
- - test/spec_auth_basic.rb
309
- - test/spec_head.rb
310
- - test/spec_lock.rb
311
- - test/spec_rewindable_input.rb
345
+ - test/spec_session_abstract_id.rb
346
+ - test/spec_session_cookie.rb
312
347
  - test/spec_session_memcache.rb
313
- - test/spec_content_length.rb
348
+ - test/spec_session_pool.rb
349
+ - test/spec_show_exceptions.rb
350
+ - test/spec_show_status.rb
351
+ - test/spec_static.rb
352
+ - test/spec_tempfile_reaper.rb
353
+ - test/spec_thin.rb
354
+ - test/spec_urlmap.rb
355
+ - test/spec_utils.rb
356
+ - test/spec_version.rb
357
+ - test/spec_webrick.rb
358
+ has_rdoc: