rack 1.1.6 → 1.2.0

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 (105) hide show
  1. data/README +9 -205
  2. data/SPEC +3 -3
  3. data/lib/rack.rb +1 -24
  4. data/lib/rack/auth/abstract/request.rb +1 -5
  5. data/lib/rack/auth/digest/md5.rb +1 -2
  6. data/lib/rack/auth/digest/params.rb +1 -1
  7. data/lib/rack/content_length.rb +1 -1
  8. data/lib/rack/etag.rb +15 -6
  9. data/lib/rack/file.rb +3 -1
  10. data/lib/rack/handler/cgi.rb +8 -7
  11. data/lib/rack/handler/fastcgi.rb +1 -1
  12. data/lib/rack/handler/lsws.rb +1 -1
  13. data/lib/rack/handler/mongrel.rb +1 -1
  14. data/lib/rack/handler/scgi.rb +1 -4
  15. data/lib/rack/handler/webrick.rb +10 -6
  16. data/lib/rack/lint.rb +29 -37
  17. data/lib/rack/mime.rb +2 -0
  18. data/lib/rack/mock.rb +2 -1
  19. data/lib/rack/recursive.rb +4 -0
  20. data/lib/rack/request.rb +8 -6
  21. data/lib/rack/response.rb +1 -0
  22. data/lib/rack/rewindable_input.rb +13 -10
  23. data/lib/rack/sendfile.rb +8 -6
  24. data/lib/rack/server.rb +68 -9
  25. data/lib/rack/session/cookie.rb +1 -10
  26. data/lib/rack/session/memcache.rb +1 -1
  27. data/lib/rack/urlmap.rb +6 -7
  28. data/lib/rack/utils.rb +40 -71
  29. data/rack.gemspec +7 -11
  30. data/spec/cgi/lighttpd.conf +25 -0
  31. data/spec/cgi/rackup_stub.rb +6 -0
  32. data/spec/cgi/sample_rackup.ru +5 -0
  33. data/spec/cgi/test +9 -0
  34. data/spec/cgi/test.fcgi +8 -0
  35. data/spec/cgi/test.ru +5 -0
  36. data/spec/multipart/bad_robots +259 -0
  37. data/spec/multipart/binary +0 -0
  38. data/spec/multipart/empty +10 -0
  39. data/spec/multipart/fail_16384_nofile +814 -0
  40. data/spec/multipart/file1.txt +1 -0
  41. data/spec/multipart/filename_and_modification_param +7 -0
  42. data/spec/multipart/filename_with_escaped_quotes +6 -0
  43. data/spec/multipart/filename_with_escaped_quotes_and_modification_param +7 -0
  44. data/spec/multipart/filename_with_percent_escaped_quotes +6 -0
  45. data/spec/multipart/filename_with_unescaped_quotes +6 -0
  46. data/spec/multipart/ie +6 -0
  47. data/spec/multipart/nested +10 -0
  48. data/spec/multipart/none +9 -0
  49. data/spec/multipart/semicolon +6 -0
  50. data/spec/multipart/text +10 -0
  51. data/spec/rackup/config.ru +31 -0
  52. data/{test/spec_rack_auth_basic.rb → spec/spec_auth_basic.rb} +11 -14
  53. data/{test/spec_rack_auth_digest.rb → spec/spec_auth_digest.rb} +18 -27
  54. data/{test/spec_rack_builder.rb → spec/spec_builder.rb} +49 -10
  55. data/{test/spec_rack_cascade.rb → spec/spec_cascade.rb} +7 -10
  56. data/{test/spec_rack_cgi.rb → spec/spec_cgi.rb} +34 -32
  57. data/{test/spec_rack_chunked.rb → spec/spec_chunked.rb} +8 -10
  58. data/{test/spec_rack_commonlogger.rb → spec/spec_commonlogger.rb} +10 -15
  59. data/{test/spec_rack_conditionalget.rb → spec/spec_conditionalget.rb} +5 -7
  60. data/{test/spec_rack_config.rb → spec/spec_config.rb} +6 -7
  61. data/{test/spec_rack_content_length.rb → spec/spec_content_length.rb} +7 -8
  62. data/{test/spec_rack_content_type.rb → spec/spec_content_type.rb} +5 -6
  63. data/{test/spec_rack_deflater.rb → spec/spec_deflater.rb} +11 -13
  64. data/{test/spec_rack_directory.rb → spec/spec_directory.rb} +6 -10
  65. data/{test/spec_rack_etag.rb → spec/spec_etag.rb} +3 -5
  66. data/{test/spec_rack_fastcgi.rb → spec/spec_fastcgi.rb} +36 -29
  67. data/{test/spec_rack_file.rb → spec/spec_file.rb} +9 -13
  68. data/{test/spec_rack_handler.rb → spec/spec_handler.rb} +10 -12
  69. data/{test/spec_rack_head.rb → spec/spec_head.rb} +3 -3
  70. data/{test/spec_rack_lint.rb → spec/spec_lint.rb} +19 -32
  71. data/{test/spec_rack_lobster.rb → spec/spec_lobster.rb} +9 -11
  72. data/{test/spec_rack_lock.rb → spec/spec_lock.rb} +15 -17
  73. data/{test/spec_rack_logger.rb → spec/spec_logger.rb} +6 -7
  74. data/{test/spec_rack_methodoverride.rb → spec/spec_methodoverride.rb} +15 -17
  75. data/{test/spec_rack_mock.rb → spec/spec_mock.rb} +30 -32
  76. data/{test/spec_rack_mongrel.rb → spec/spec_mongrel.rb} +40 -46
  77. data/{test/spec_rack_nulllogger.rb → spec/spec_nulllogger.rb} +4 -5
  78. data/{test/spec_rack_recursive.rb → spec/spec_recursive.rb} +28 -36
  79. data/{test/spec_rack_request.rb → spec/spec_request.rb} +84 -98
  80. data/{test/spec_rack_response.rb → spec/spec_response.rb} +46 -27
  81. data/spec/spec_rewindable_input.rb +118 -0
  82. data/{test/spec_rack_runtime.rb → spec/spec_runtime.rb} +15 -11
  83. data/{test/spec_rack_sendfile.rb → spec/spec_sendfile.rb} +11 -14
  84. data/{test/spec_rack_session_cookie.rb → spec/spec_session_cookie.rb} +14 -36
  85. data/{test/spec_rack_session_memcache.rb → spec/spec_session_memcache.rb} +32 -26
  86. data/{test/spec_rack_session_pool.rb → spec/spec_session_pool.rb} +36 -31
  87. data/spec/spec_showexceptions.rb +23 -0
  88. data/spec/spec_showstatus.rb +79 -0
  89. data/{test/spec_rack_static.rb → spec/spec_static.rb} +5 -9
  90. data/{test/spec_rack_thin.rb → spec/spec_thin.rb} +30 -35
  91. data/{test/spec_rack_urlmap.rb → spec/spec_urlmap.rb} +6 -8
  92. data/{test/spec_rack_utils.rb → spec/spec_utils.rb} +134 -74
  93. data/{test/spec_rack_webrick.rb → spec/spec_webrick.rb} +28 -36
  94. data/spec/testrequest.rb +77 -0
  95. data/spec/unregistered_handler/rack/handler/unregistered.rb +7 -0
  96. data/spec/unregistered_handler/rack/handler/unregistered_long_one.rb +7 -0
  97. metadata +176 -191
  98. data/RDOX +0 -0
  99. data/lib/rack/adapter/camping.rb +0 -22
  100. data/test/spec_auth.rb +0 -57
  101. data/test/spec_rack_camping.rb +0 -55
  102. data/test/spec_rack_rewindable_input.rb +0 -118
  103. data/test/spec_rack_showexceptions.rb +0 -21
  104. data/test/spec_rack_showstatus.rb +0 -72
  105. data/test/spec_rackup.rb +0 -164
@@ -1,35 +1,29 @@
1
- require 'test/spec'
2
-
3
- require 'rack/handler/webrick'
4
- require 'rack/lint'
5
- require 'rack/response'
6
- require 'testrequest'
1
+ require 'rack/mock'
2
+ require File.expand_path('../testrequest', __FILE__)
7
3
 
8
4
  Thread.abort_on_exception = true
9
5
 
10
- context "Rack::Handler::WEBrick" do
11
- include TestRequest::Helpers
12
-
13
- setup do
14
- @server = WEBrick::HTTPServer.new(:Host => @host='0.0.0.0',
15
- :Port => @port=9202,
16
- :Logger => WEBrick::Log.new(nil, WEBrick::BasicLog::WARN),
17
- :AccessLog => [])
18
- @server.mount "/test", Rack::Handler::WEBrick,
19
- Rack::Lint.new(TestRequest.new)
20
- Thread.new { @server.start }
21
- trap(:INT) { @server.shutdown }
22
- end
6
+ describe Rack::Handler::WEBrick do
7
+ extend TestRequest::Helpers
8
+
9
+ @server = WEBrick::HTTPServer.new(:Host => @host='0.0.0.0',
10
+ :Port => @port=9202,
11
+ :Logger => WEBrick::Log.new(nil, WEBrick::BasicLog::WARN),
12
+ :AccessLog => [])
13
+ @server.mount "/test", Rack::Handler::WEBrick,
14
+ Rack::Lint.new(TestRequest.new)
15
+ Thread.new { @server.start }
16
+ trap(:INT) { @server.shutdown }
23
17
 
24
- specify "should respond" do
18
+ should "respond" do
25
19
  lambda {
26
20
  GET("/test")
27
21
  }.should.not.raise
28
22
  end
29
23
 
30
- specify "should be a WEBrick" do
24
+ should "be a WEBrick" do
31
25
  GET("/test")
32
- status.should.be 200
26
+ status.should.equal 200
33
27
  response["SERVER_SOFTWARE"].should =~ /WEBrick/
34
28
  response["HTTP_VERSION"].should.equal "HTTP/1.1"
35
29
  response["SERVER_PROTOCOL"].should.equal "HTTP/1.1"
@@ -37,15 +31,15 @@ context "Rack::Handler::WEBrick" do
37
31
  response["SERVER_NAME"].should.equal "0.0.0.0"
38
32
  end
39
33
 
40
- specify "should have rack headers" do
34
+ should "have rack headers" do
41
35
  GET("/test")
42
36
  response["rack.version"].should.equal [1,1]
43
- response["rack.multithread"].should.be true
44
- response["rack.multiprocess"].should.be false
45
- response["rack.run_once"].should.be false
37
+ response["rack.multithread"].should.be.true
38
+ response["rack.multiprocess"].should.be.false
39
+ response["rack.run_once"].should.be.false
46
40
  end
47
41
 
48
- specify "should have CGI headers on GET" do
42
+ should "have CGI headers on GET" do
49
43
  GET("/test")
50
44
  response["REQUEST_METHOD"].should.equal "GET"
51
45
  response["SCRIPT_NAME"].should.equal "/test"
@@ -69,7 +63,7 @@ context "Rack::Handler::WEBrick" do
69
63
  response["QUERY_STRING"].should.equal "quux=1"
70
64
  end
71
65
 
72
- specify "should have CGI headers on POST" do
66
+ should "have CGI headers on POST" do
73
67
  POST("/test", {"rack-form-data" => "23"}, {'X-test-header' => '42'})
74
68
  status.should.equal 200
75
69
  response["REQUEST_METHOD"].should.equal "POST"
@@ -80,18 +74,18 @@ context "Rack::Handler::WEBrick" do
80
74
  response["test.postdata"].should.equal "rack-form-data=23"
81
75
  end
82
76
 
83
- specify "should support HTTP auth" do
77
+ should "support HTTP auth" do
84
78
  GET("/test", {:user => "ruth", :passwd => "secret"})
85
79
  response["HTTP_AUTHORIZATION"].should.equal "Basic cnV0aDpzZWNyZXQ="
86
80
  end
87
81
 
88
- specify "should set status" do
82
+ should "set status" do
89
83
  GET("/test?secret")
90
84
  status.should.equal 403
91
85
  response["rack.url_scheme"].should.equal "http"
92
86
  end
93
87
 
94
- specify "should correctly set cookies" do
88
+ should "correctly set cookies" do
95
89
  @server.mount "/cookie-test", Rack::Handler::WEBrick,
96
90
  Rack::Lint.new(lambda { |req|
97
91
  res = Rack::Response.new
@@ -107,7 +101,7 @@ context "Rack::Handler::WEBrick" do
107
101
  }
108
102
  end
109
103
 
110
- specify "should provide a .run" do
104
+ should "provide a .run" do
111
105
  block_ran = false
112
106
  catch(:done) {
113
107
  Rack::Handler::WEBrick.run(lambda {},
@@ -120,11 +114,9 @@ context "Rack::Handler::WEBrick" do
120
114
  throw :done
121
115
  }
122
116
  }
123
- block_ran.should.be true
117
+ block_ran.should.be.true
124
118
  @s.shutdown
125
119
  end
126
120
 
127
- teardown do
128
- @server.shutdown
129
- end
121
+ @server.shutdown
130
122
  end
@@ -0,0 +1,77 @@
1
+ require 'yaml'
2
+ require 'net/http'
3
+
4
+ class TestRequest
5
+ NOSERIALIZE = [Method, Proc]
6
+
7
+ def call(env)
8
+ status = env["QUERY_STRING"] =~ /secret/ ? 403 : 200
9
+ env["test.postdata"] = env["rack.input"].read
10
+ minienv = env.dup
11
+ # This may in the future want to replace with a dummy value instead.
12
+ minienv.delete_if { |k,v| NOSERIALIZE.any? { |c| v.kind_of?(c) } }
13
+ body = minienv.to_yaml
14
+ size = body.respond_to?(:bytesize) ? body.bytesize : body.size
15
+ [status, {"Content-Type" => "text/yaml", "Content-Length" => size.to_s}, [body]]
16
+ end
17
+
18
+ module Helpers
19
+ attr_reader :status, :response
20
+
21
+ ROOT = File.expand_path(File.dirname(__FILE__) + "/..")
22
+ ENV["RUBYOPT"] = "-I#{ROOT}/lib -rubygems"
23
+
24
+ def root
25
+ ROOT
26
+ end
27
+
28
+ def rackup
29
+ "#{ROOT}/bin/rackup"
30
+ end
31
+
32
+ def GET(path, header={})
33
+ Net::HTTP.start(@host, @port) { |http|
34
+ user = header.delete(:user)
35
+ passwd = header.delete(:passwd)
36
+
37
+ get = Net::HTTP::Get.new(path, header)
38
+ get.basic_auth user, passwd if user && passwd
39
+ http.request(get) { |response|
40
+ @status = response.code.to_i
41
+ begin
42
+ @response = YAML.load(response.body)
43
+ rescue TypeError, ArgumentError
44
+ @response = nil
45
+ end
46
+ }
47
+ }
48
+ end
49
+
50
+ def POST(path, formdata={}, header={})
51
+ Net::HTTP.start(@host, @port) { |http|
52
+ user = header.delete(:user)
53
+ passwd = header.delete(:passwd)
54
+
55
+ post = Net::HTTP::Post.new(path, header)
56
+ post.form_data = formdata
57
+ post.basic_auth user, passwd if user && passwd
58
+ http.request(post) { |response|
59
+ @status = response.code.to_i
60
+ @response = YAML.load(response.body)
61
+ }
62
+ }
63
+ end
64
+ end
65
+ end
66
+
67
+ class StreamingRequest
68
+ def self.call(env)
69
+ [200, {"Content-Type" => "text/plain"}, new]
70
+ end
71
+
72
+ def each
73
+ yield "hello there!\n"
74
+ sleep 5
75
+ yield "that is all.\n"
76
+ end
77
+ end
@@ -0,0 +1,7 @@
1
+ module Rack
2
+ module Handler
3
+ # this class doesn't do anything, we're just seeing if we get it.
4
+ class Unregistered
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Rack
2
+ module Handler
3
+ # this class doesn't do anything, we're just seeing if we get it.
4
+ class UnregisteredLongOne
5
+ end
6
+ end
7
+ end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
5
- prerelease:
4
+ prerelease: false
6
5
  segments:
7
6
  - 1
8
- - 1
9
- - 6
10
- version: 1.1.6
7
+ - 2
8
+ - 0
9
+ version: 1.2.0
11
10
  platform: ruby
12
11
  authors:
13
12
  - Christian Neukirchen
@@ -15,108 +14,81 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2013-02-08 00:00:00 Z
17
+ date: 2010-06-13 00:00:00 +02:00
18
+ default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- name: test-spec
21
+ name: bacon
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
24
  requirements:
26
25
  - - ">="
27
26
  - !ruby/object:Gem::Version
28
- hash: 3
29
27
  segments:
30
28
  - 0
31
29
  version: "0"
32
30
  type: :development
33
31
  version_requirements: *id001
34
32
  - !ruby/object:Gem::Dependency
35
- name: activesupport
33
+ name: rake
36
34
  prerelease: false
37
35
  requirement: &id002 !ruby/object:Gem::Requirement
38
- none: false
39
36
  requirements:
40
- - - <
37
+ - - ">="
41
38
  - !ruby/object:Gem::Version
42
- hash: 7
43
39
  segments:
44
- - 2
45
- version: "2"
40
+ - 0
41
+ version: "0"
46
42
  type: :development
47
43
  version_requirements: *id002
48
44
  - !ruby/object:Gem::Dependency
49
- name: camping
45
+ name: fcgi
50
46
  prerelease: false
51
47
  requirement: &id003 !ruby/object:Gem::Requirement
52
- none: false
53
48
  requirements:
54
- - - <
49
+ - - ">="
55
50
  - !ruby/object:Gem::Version
56
- hash: 3
57
51
  segments:
58
- - 1
59
- - 6
60
- version: "1.6"
52
+ - 0
53
+ version: "0"
61
54
  type: :development
62
55
  version_requirements: *id003
63
56
  - !ruby/object:Gem::Dependency
64
- name: fcgi
57
+ name: memcache-client
65
58
  prerelease: false
66
59
  requirement: &id004 !ruby/object:Gem::Requirement
67
- none: false
68
60
  requirements:
69
61
  - - ">="
70
62
  - !ruby/object:Gem::Version
71
- hash: 3
72
63
  segments:
73
64
  - 0
74
65
  version: "0"
75
66
  type: :development
76
67
  version_requirements: *id004
77
68
  - !ruby/object:Gem::Dependency
78
- name: memcache-client
69
+ name: mongrel
79
70
  prerelease: false
80
71
  requirement: &id005 !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ">="
84
74
  - !ruby/object:Gem::Version
85
- hash: 3
86
75
  segments:
87
76
  - 0
88
77
  version: "0"
89
78
  type: :development
90
79
  version_requirements: *id005
91
80
  - !ruby/object:Gem::Dependency
92
- name: mongrel
81
+ name: thin
93
82
  prerelease: false
94
83
  requirement: &id006 !ruby/object:Gem::Requirement
95
- none: false
96
84
  requirements:
97
85
  - - ">="
98
86
  - !ruby/object:Gem::Version
99
- hash: 3
100
87
  segments:
101
88
  - 0
102
89
  version: "0"
103
90
  type: :development
104
91
  version_requirements: *id006
105
- - !ruby/object:Gem::Dependency
106
- name: thin
107
- prerelease: false
108
- requirement: &id007 !ruby/object:Gem::Requirement
109
- none: false
110
- requirements:
111
- - - <
112
- - !ruby/object:Gem::Version
113
- hash: 11
114
- segments:
115
- - 1
116
- - 2
117
- version: "1.2"
118
- type: :development
119
- version_requirements: *id007
120
92
  description: |
121
93
  Rack provides minimal, modular and adaptable interface for developing
122
94
  web applications in Ruby. By wrapping HTTP requests and responses in
@@ -138,117 +110,138 @@ extra_rdoc_files:
138
110
  files:
139
111
  - bin/rackup
140
112
  - contrib/rack_logo.svg
113
+ - example/protectedlobster.ru
141
114
  - example/lobster.ru
142
115
  - example/protectedlobster.rb
143
- - example/protectedlobster.ru
144
- - lib/rack/adapter/camping.rb
145
- - lib/rack/auth/abstract/handler.rb
146
- - lib/rack/auth/abstract/request.rb
147
- - lib/rack/auth/basic.rb
148
- - lib/rack/auth/digest/md5.rb
149
- - lib/rack/auth/digest/nonce.rb
150
- - lib/rack/auth/digest/params.rb
151
- - lib/rack/auth/digest/request.rb
152
- - lib/rack/builder.rb
153
- - lib/rack/cascade.rb
154
- - lib/rack/chunked.rb
155
- - lib/rack/commonlogger.rb
116
+ - lib/rack/session/cookie.rb
117
+ - lib/rack/session/pool.rb
118
+ - lib/rack/session/memcache.rb
119
+ - lib/rack/session/abstract/id.rb
120
+ - lib/rack/response.rb
156
121
  - lib/rack/conditionalget.rb
157
- - lib/rack/config.rb
158
- - lib/rack/content_length.rb
159
- - lib/rack/content_type.rb
160
- - lib/rack/deflater.rb
161
- - lib/rack/directory.rb
162
- - lib/rack/etag.rb
163
- - lib/rack/file.rb
164
- - lib/rack/handler/cgi.rb
165
- - lib/rack/handler/evented_mongrel.rb
166
- - lib/rack/handler/fastcgi.rb
167
- - lib/rack/handler/lsws.rb
168
- - lib/rack/handler/mongrel.rb
122
+ - lib/rack/showstatus.rb
123
+ - lib/rack/rewindable_input.rb
124
+ - lib/rack/sendfile.rb
125
+ - lib/rack/urlmap.rb
126
+ - lib/rack/chunked.rb
127
+ - lib/rack/head.rb
128
+ - lib/rack/runtime.rb
129
+ - lib/rack/handler/webrick.rb
130
+ - lib/rack/handler/thin.rb
169
131
  - lib/rack/handler/scgi.rb
132
+ - lib/rack/handler/mongrel.rb
133
+ - lib/rack/handler/evented_mongrel.rb
170
134
  - lib/rack/handler/swiftiplied_mongrel.rb
171
- - lib/rack/handler/thin.rb
172
- - lib/rack/handler/webrick.rb
135
+ - lib/rack/handler/lsws.rb
136
+ - lib/rack/handler/fastcgi.rb
137
+ - lib/rack/handler/cgi.rb
138
+ - lib/rack/lock.rb
139
+ - lib/rack/builder.rb
173
140
  - lib/rack/handler.rb
174
- - lib/rack/head.rb
175
- - lib/rack/lint.rb
141
+ - lib/rack/mock.rb
142
+ - lib/rack/static.rb
143
+ - lib/rack/deflater.rb
144
+ - lib/rack/content_type.rb
145
+ - lib/rack/server.rb
146
+ - lib/rack/directory.rb
147
+ - lib/rack/showexceptions.rb
148
+ - lib/rack/file.rb
149
+ - lib/rack/request.rb
176
150
  - lib/rack/lobster.rb
177
- - lib/rack/lock.rb
178
- - lib/rack/logger.rb
151
+ - lib/rack/commonlogger.rb
152
+ - lib/rack/config.rb
153
+ - lib/rack/utils.rb
154
+ - lib/rack/etag.rb
179
155
  - lib/rack/methodoverride.rb
180
- - lib/rack/mime.rb
181
- - lib/rack/mock.rb
156
+ - lib/rack/cascade.rb
157
+ - lib/rack/logger.rb
158
+ - lib/rack/auth/digest/request.rb
159
+ - lib/rack/auth/digest/nonce.rb
160
+ - lib/rack/auth/digest/params.rb
161
+ - lib/rack/auth/digest/md5.rb
162
+ - lib/rack/auth/basic.rb
163
+ - lib/rack/auth/abstract/handler.rb
164
+ - lib/rack/auth/abstract/request.rb
165
+ - lib/rack/content_length.rb
182
166
  - lib/rack/nulllogger.rb
167
+ - lib/rack/lint.rb
183
168
  - lib/rack/recursive.rb
169
+ - lib/rack/mime.rb
184
170
  - lib/rack/reloader.rb
185
- - lib/rack/request.rb
186
- - lib/rack/response.rb
187
- - lib/rack/rewindable_input.rb
188
- - lib/rack/runtime.rb
189
- - lib/rack/sendfile.rb
190
- - lib/rack/server.rb
191
- - lib/rack/session/abstract/id.rb
192
- - lib/rack/session/cookie.rb
193
- - lib/rack/session/memcache.rb
194
- - lib/rack/session/pool.rb
195
- - lib/rack/showexceptions.rb
196
- - lib/rack/showstatus.rb
197
- - lib/rack/static.rb
198
- - lib/rack/urlmap.rb
199
- - lib/rack/utils.rb
200
171
  - lib/rack.rb
172
+ - spec/spec_static.rb
173
+ - spec/spec_content_type.rb
174
+ - spec/spec_thin.rb
175
+ - spec/testrequest.rb
176
+ - spec/spec_auth_digest.rb
177
+ - spec/spec_response.rb
178
+ - spec/spec_file.rb
179
+ - spec/spec_rewindable_input.rb
180
+ - spec/spec_methodoverride.rb
181
+ - spec/spec_fastcgi.rb
182
+ - spec/spec_chunked.rb
183
+ - spec/spec_cgi.rb
184
+ - spec/multipart/semicolon
185
+ - spec/multipart/filename_with_escaped_quotes
186
+ - spec/multipart/binary
187
+ - spec/multipart/fail_16384_nofile
188
+ - spec/multipart/filename_and_modification_param
189
+ - spec/multipart/text
190
+ - spec/multipart/ie
191
+ - spec/multipart/filename_with_percent_escaped_quotes
192
+ - spec/multipart/empty
193
+ - spec/multipart/none
194
+ - spec/multipart/file1.txt
195
+ - spec/multipart/filename_with_escaped_quotes_and_modification_param
196
+ - spec/multipart/nested
197
+ - spec/multipart/bad_robots
198
+ - spec/multipart/filename_with_unescaped_quotes
199
+ - spec/spec_head.rb
200
+ - spec/spec_urlmap.rb
201
+ - spec/spec_mongrel.rb
202
+ - spec/spec_content_length.rb
203
+ - spec/spec_session_cookie.rb
204
+ - spec/spec_utils.rb
205
+ - spec/spec_showexceptions.rb
206
+ - spec/spec_lobster.rb
207
+ - spec/spec_logger.rb
208
+ - spec/spec_sendfile.rb
209
+ - spec/spec_conditionalget.rb
210
+ - spec/spec_lint.rb
211
+ - spec/spec_deflater.rb
212
+ - spec/rackup/config.ru
213
+ - spec/spec_showstatus.rb
214
+ - spec/spec_lock.rb
215
+ - spec/spec_nulllogger.rb
216
+ - spec/spec_config.rb
217
+ - spec/spec_session_memcache.rb
218
+ - spec/spec_runtime.rb
219
+ - spec/spec_commonlogger.rb
220
+ - spec/spec_directory.rb
221
+ - spec/spec_cascade.rb
222
+ - spec/spec_webrick.rb
223
+ - spec/spec_request.rb
224
+ - spec/spec_etag.rb
225
+ - spec/spec_mock.rb
226
+ - spec/cgi/sample_rackup.ru
227
+ - spec/cgi/test
228
+ - spec/cgi/test.fcgi
229
+ - spec/cgi/lighttpd.conf
230
+ - spec/cgi/rackup_stub.rb
231
+ - spec/cgi/test.ru
232
+ - spec/spec_builder.rb
233
+ - spec/spec_auth_basic.rb
234
+ - spec/unregistered_handler/rack/handler/unregistered.rb
235
+ - spec/unregistered_handler/rack/handler/unregistered_long_one.rb
236
+ - spec/spec_handler.rb
237
+ - spec/spec_session_pool.rb
238
+ - spec/spec_recursive.rb
201
239
  - COPYING
202
240
  - KNOWN-ISSUES
203
241
  - rack.gemspec
204
- - RDOX
205
242
  - README
206
243
  - SPEC
207
- - test/spec_auth.rb
208
- - test/spec_rack_auth_basic.rb
209
- - test/spec_rack_auth_digest.rb
210
- - test/spec_rack_builder.rb
211
- - test/spec_rack_camping.rb
212
- - test/spec_rack_cascade.rb
213
- - test/spec_rack_cgi.rb
214
- - test/spec_rack_chunked.rb
215
- - test/spec_rack_commonlogger.rb
216
- - test/spec_rack_conditionalget.rb
217
- - test/spec_rack_config.rb
218
- - test/spec_rack_content_length.rb
219
- - test/spec_rack_content_type.rb
220
- - test/spec_rack_deflater.rb
221
- - test/spec_rack_directory.rb
222
- - test/spec_rack_etag.rb
223
- - test/spec_rack_fastcgi.rb
224
- - test/spec_rack_file.rb
225
- - test/spec_rack_handler.rb
226
- - test/spec_rack_head.rb
227
- - test/spec_rack_lint.rb
228
- - test/spec_rack_lobster.rb
229
- - test/spec_rack_lock.rb
230
- - test/spec_rack_logger.rb
231
- - test/spec_rack_methodoverride.rb
232
- - test/spec_rack_mock.rb
233
- - test/spec_rack_mongrel.rb
234
- - test/spec_rack_nulllogger.rb
235
- - test/spec_rack_recursive.rb
236
- - test/spec_rack_request.rb
237
- - test/spec_rack_response.rb
238
- - test/spec_rack_rewindable_input.rb
239
- - test/spec_rack_runtime.rb
240
- - test/spec_rack_sendfile.rb
241
- - test/spec_rack_session_cookie.rb
242
- - test/spec_rack_session_memcache.rb
243
- - test/spec_rack_session_pool.rb
244
- - test/spec_rack_showexceptions.rb
245
- - test/spec_rack_showstatus.rb
246
- - test/spec_rack_static.rb
247
- - test/spec_rack_thin.rb
248
- - test/spec_rack_urlmap.rb
249
- - test/spec_rack_utils.rb
250
- - test/spec_rack_webrick.rb
251
- - test/spec_rackup.rb
244
+ has_rdoc: true
252
245
  homepage: http://rack.rubyforge.org
253
246
  licenses: []
254
247
 
@@ -258,74 +251,66 @@ rdoc_options: []
258
251
  require_paths:
259
252
  - lib
260
253
  required_ruby_version: !ruby/object:Gem::Requirement
261
- none: false
262
254
  requirements:
263
255
  - - ">="
264
256
  - !ruby/object:Gem::Version
265
- hash: 3
266
257
  segments:
267
258
  - 0
268
259
  version: "0"
269
260
  required_rubygems_version: !ruby/object:Gem::Requirement
270
- none: false
271
261
  requirements:
272
262
  - - ">="
273
263
  - !ruby/object:Gem::Version
274
- hash: 3
275
264
  segments:
276
265
  - 0
277
266
  version: "0"
278
267
  requirements: []
279
268
 
280
269
  rubyforge_project: rack
281
- rubygems_version: 1.8.24
270
+ rubygems_version: 1.3.6
282
271
  signing_key:
283
272
  specification_version: 3
284
273
  summary: a modular Ruby webserver interface
285
274
  test_files:
286
- - test/spec_auth.rb
287
- - test/spec_rack_auth_basic.rb
288
- - test/spec_rack_auth_digest.rb
289
- - test/spec_rack_builder.rb
290
- - test/spec_rack_camping.rb
291
- - test/spec_rack_cascade.rb
292
- - test/spec_rack_cgi.rb
293
- - test/spec_rack_chunked.rb
294
- - test/spec_rack_commonlogger.rb
295
- - test/spec_rack_conditionalget.rb
296
- - test/spec_rack_config.rb
297
- - test/spec_rack_content_length.rb
298
- - test/spec_rack_content_type.rb
299
- - test/spec_rack_deflater.rb
300
- - test/spec_rack_directory.rb
301
- - test/spec_rack_etag.rb
302
- - test/spec_rack_fastcgi.rb
303
- - test/spec_rack_file.rb
304
- - test/spec_rack_handler.rb
305
- - test/spec_rack_head.rb
306
- - test/spec_rack_lint.rb
307
- - test/spec_rack_lobster.rb
308
- - test/spec_rack_lock.rb
309
- - test/spec_rack_logger.rb
310
- - test/spec_rack_methodoverride.rb
311
- - test/spec_rack_mock.rb
312
- - test/spec_rack_mongrel.rb
313
- - test/spec_rack_nulllogger.rb
314
- - test/spec_rack_recursive.rb
315
- - test/spec_rack_request.rb
316
- - test/spec_rack_response.rb
317
- - test/spec_rack_rewindable_input.rb
318
- - test/spec_rack_runtime.rb
319
- - test/spec_rack_sendfile.rb
320
- - test/spec_rack_session_cookie.rb
321
- - test/spec_rack_session_memcache.rb
322
- - test/spec_rack_session_pool.rb
323
- - test/spec_rack_showexceptions.rb
324
- - test/spec_rack_showstatus.rb
325
- - test/spec_rack_static.rb
326
- - test/spec_rack_thin.rb
327
- - test/spec_rack_urlmap.rb
328
- - test/spec_rack_utils.rb
329
- - test/spec_rack_webrick.rb
330
- - test/spec_rackup.rb
331
- has_rdoc: true
275
+ - spec/spec_static.rb
276
+ - spec/spec_content_type.rb
277
+ - spec/spec_thin.rb
278
+ - spec/spec_auth_digest.rb
279
+ - spec/spec_response.rb
280
+ - spec/spec_file.rb
281
+ - spec/spec_rewindable_input.rb
282
+ - spec/spec_methodoverride.rb
283
+ - spec/spec_fastcgi.rb
284
+ - spec/spec_chunked.rb
285
+ - spec/spec_cgi.rb
286
+ - spec/spec_head.rb
287
+ - spec/spec_urlmap.rb
288
+ - spec/spec_mongrel.rb
289
+ - spec/spec_content_length.rb
290
+ - spec/spec_session_cookie.rb
291
+ - spec/spec_utils.rb
292
+ - spec/spec_showexceptions.rb
293
+ - spec/spec_lobster.rb
294
+ - spec/spec_logger.rb
295
+ - spec/spec_sendfile.rb
296
+ - spec/spec_conditionalget.rb
297
+ - spec/spec_lint.rb
298
+ - spec/spec_deflater.rb
299
+ - spec/spec_showstatus.rb
300
+ - spec/spec_lock.rb
301
+ - spec/spec_nulllogger.rb
302
+ - spec/spec_config.rb
303
+ - spec/spec_session_memcache.rb
304
+ - spec/spec_runtime.rb
305
+ - spec/spec_commonlogger.rb
306
+ - spec/spec_directory.rb
307
+ - spec/spec_cascade.rb
308
+ - spec/spec_webrick.rb
309
+ - spec/spec_request.rb
310
+ - spec/spec_etag.rb
311
+ - spec/spec_mock.rb
312
+ - spec/spec_builder.rb
313
+ - spec/spec_auth_basic.rb
314
+ - spec/spec_handler.rb
315
+ - spec/spec_session_pool.rb
316
+ - spec/spec_recursive.rb