rack 1.2.2 → 1.2.3

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.

data/README CHANGED
@@ -119,7 +119,7 @@ By default, the lobster is found at http://localhost:9292.
119
119
 
120
120
  == Installing with RubyGems
121
121
 
122
- A Gem of Rack is available at gemcutter.org. You can install it with:
122
+ A Gem of Rack is available at rubygems.org. You can install it with:
123
123
 
124
124
  gem install rack
125
125
 
@@ -317,6 +317,30 @@ run on port 11211) and memcache-client installed.
317
317
  * Security fix in Rack::Auth::Digest::MD5: when authenticator
318
318
  returned nil, permission was granted on empty password.
319
319
 
320
+ * May 22nd, 2011: Thirteenth public release 1.3.0
321
+ * Various performance optimizations
322
+ * Various multipart fixes
323
+ * Various multipart refactors
324
+ * Infinite loop fix for multipart
325
+ * Test coverage for Rack::Server returns
326
+ * Allow files with '..', but not path components that are '..'
327
+ * rackup accepts handler-specific options on the command line
328
+ * Request#params no longer merges POST into GET (but returns the same)
329
+ * Use URI.encode_www_form_component instead. Use core methods for escaping.
330
+ * Allow multi-line comments in the config file
331
+ * Bug L#94 reported by Nikolai Lugovoi, query parameter unescaping.
332
+ * Rack::Response now deletes Content-Length when appropriate
333
+ * Rack::Deflater now supports streaming
334
+ * Improved Rack::Handler loading and searching
335
+ * Support for the PATCH verb
336
+ * env['rack.session.options'] now contains session options
337
+ * Cookies respect renew
338
+ * Session middleware uses SecureRandom.hex
339
+
340
+ * May 22nd, 2011: Fourteenth public release 1.2.3
341
+ * Pulled in relevant bug fixes from 1.3
342
+ * Fixed 1.8.6 support
343
+
320
344
  == Contact
321
345
 
322
346
  Please post bugs, suggestions and patches to
@@ -370,7 +394,7 @@ would like to thank:
370
394
  * Marcus Rückert, for help with configuring and debugging lighttpd.
371
395
  * The WSGI team for the well-done and documented work they've done and
372
396
  Rack builds up on.
373
- * All bug reporters and patch contributers not mentioned above.
397
+ * All bug reporters and patch contributors not mentioned above.
374
398
 
375
399
  == Copyright
376
400
 
@@ -396,10 +420,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
396
420
  == Links
397
421
 
398
422
  Rack:: <http://rack.rubyforge.org/>
399
- Rack's Rubyforge project:: <http://rubyforge.org/projects/rack>
400
423
  Official Rack repositories:: <http://github.com/rack>
401
- Rack Lighthouse Bug Tracking:: <http://rack.lighthouseapp.com/>
424
+ Rack Bug Tracking:: <http://github.com/rack/rack/issues>
402
425
  rack-devel mailing list:: <http://groups.google.com/group/rack-devel>
426
+ Rack's Rubyforge project:: <http://rubyforge.org/projects/rack>
403
427
 
404
428
  Christian Neukirchen:: <http://chneukirchen.org/>
405
429
 
@@ -0,0 +1,100 @@
1
+ # Rakefile for Rack. -*-ruby-*-
2
+
3
+ desc "Run all the tests"
4
+ task :default => [:test]
5
+
6
+ desc "Make an archive as .tar.gz"
7
+ task :dist => [:chmod, :changelog, :rdoc, "SPEC"] do
8
+ sh "git archive --format=tar --prefix=#{release}/ HEAD^{tree} >#{release}.tar"
9
+ sh "pax -waf #{release}.tar -s ':^:#{release}/:' SPEC ChangeLog doc rack.gemspec"
10
+ sh "gzip -f -9 #{release}.tar"
11
+ end
12
+
13
+ desc "Make an official release"
14
+ task :officialrelease do
15
+ puts "Official build for #{release}..."
16
+ sh "rm -rf stage"
17
+ sh "git clone --shared . stage"
18
+ sh "cd stage && rake officialrelease_really"
19
+ sh "mv stage/#{release}.tar.gz stage/#{release}.gem ."
20
+ end
21
+
22
+ task :officialrelease_really => ["SPEC", :dist, :gem] do
23
+ sh "sha1sum #{release}.tar.gz #{release}.gem"
24
+ end
25
+
26
+ def release
27
+ "rack-#{File.read("rack.gemspec")[/s.version *= *"(.*?)"/, 1]}"
28
+ end
29
+
30
+ desc "Make binaries executable"
31
+ task :chmod do
32
+ Dir["bin/*"].each { |binary| File.chmod(0775, binary) }
33
+ Dir["test/cgi/test*"].each { |binary| File.chmod(0775, binary) }
34
+ end
35
+
36
+ desc "Generate a ChangeLog"
37
+ task :changelog do
38
+ File.open("ChangeLog", "w") { |out|
39
+ `git log -z`.split("\0").map { |chunk|
40
+ author = chunk[/Author: (.*)/, 1].strip
41
+ date = chunk[/Date: (.*)/, 1].strip
42
+ desc, detail = $'.strip.split("\n", 2)
43
+ detail ||= ""
44
+ detail = detail.gsub(/.*darcs-hash:.*/, '')
45
+ detail.rstrip!
46
+ out.puts "#{date} #{author}"
47
+ out.puts " * #{desc.strip}"
48
+ out.puts detail unless detail.empty?
49
+ out.puts
50
+ }
51
+ }
52
+ end
53
+
54
+
55
+ file 'lib/rack/lint.rb'
56
+ desc "Generate Rack Specification"
57
+ file "SPEC" => 'lib/rack/lint.rb' do
58
+ File.open("SPEC", "wb") { |file|
59
+ IO.foreach("lib/rack/lint.rb") { |line|
60
+ if line =~ /## (.*)/
61
+ file.puts $1
62
+ end
63
+ }
64
+ }
65
+ end
66
+
67
+ desc "Run all the fast tests"
68
+ task :test => 'SPEC' do
69
+ opts = ENV['TEST'] || '-a'
70
+ specopts = ENV['TESTOPTS'] ||
71
+ "-q -t '^(?!Rack::Handler|Rack::Adapter|Rack::Session::Memcache|rackup)'"
72
+
73
+ sh "bacon -I./lib:./test -w #{opts} #{specopts}"
74
+ end
75
+
76
+ desc "Run all the tests"
77
+ task :fulltest => %w[SPEC chmod] do
78
+ opts = ENV['TEST'] || '-a'
79
+ specopts = ENV['TESTOPTS'] || '-q'
80
+ sh "bacon -r./test/gemloader -I./lib:./test -w #{opts} #{specopts}"
81
+ end
82
+
83
+ task :gem => ["SPEC"] do
84
+ sh "gem build rack.gemspec"
85
+ end
86
+
87
+ desc "Generate RDoc documentation"
88
+ task :rdoc => ["SPEC"] do
89
+ sh(*%w{rdoc --line-numbers --main README
90
+ --title 'Rack\ Documentation' --charset utf-8 -U -o doc} +
91
+ %w{README KNOWN-ISSUES SPEC} +
92
+ Dir["lib/**/*.rb"])
93
+ end
94
+
95
+ task :pushsite => [:rdoc] do
96
+ sh "cd site && git gc"
97
+ sh "rsync -avz doc/ chneukirchen@rack.rubyforge.org:/var/www/gforge-projects/rack/doc/"
98
+ sh "rsync -avz site/ chneukirchen@rack.rubyforge.org:/var/www/gforge-projects/rack/"
99
+ sh "cd site && git push"
100
+ end
data/SPEC CHANGED
@@ -3,7 +3,7 @@ can (and should) use Rack::Lint to enforce it.
3
3
  When you develop middleware, be sure to add a Lint before and
4
4
  after to catch all mistakes.
5
5
  = Rack applications
6
- A Rack application is an Ruby object (not a class) that
6
+ A Rack application is a Ruby object (not a class) that
7
7
  responds to +call+.
8
8
  It takes exactly one argument, the *environment*
9
9
  and returns an Array of exactly three values:
@@ -106,7 +106,7 @@ The input stream must respond to +gets+, +each+, +read+ and +rewind+.
106
106
  * +gets+ must be called without arguments and return a string,
107
107
  or +nil+ on EOF.
108
108
  * +read+ behaves like IO#read. Its signature is <tt>read([length, [buffer]])</tt>.
109
- If given, +length+ must be an non-negative Integer (>= 0) or +nil+, and +buffer+ must
109
+ If given, +length+ must be a non-negative Integer (>= 0) or +nil+, and +buffer+ must
110
110
  be a String and may not be nil. If +length+ is given and not nil, then this method
111
111
  reads at most +length+ bytes from the input stream. If +length+ is not given or nil,
112
112
  then this method reads all data until EOF.
@@ -22,7 +22,7 @@ module Rack
22
22
  end
23
23
 
24
24
  def initialize
25
- super
25
+ super()
26
26
 
27
27
  yield self if block_given?
28
28
  end
@@ -30,7 +30,7 @@ module Rack
30
30
 
31
31
  ## = Rack applications
32
32
 
33
- ## A Rack application is an Ruby object (not a class) that
33
+ ## A Rack application is a Ruby object (not a class) that
34
34
  ## responds to +call+.
35
35
  def call(env=nil)
36
36
  dup._call(env)
@@ -302,7 +302,7 @@ module Rack
302
302
  end
303
303
 
304
304
  ## * +read+ behaves like IO#read. Its signature is <tt>read([length, [buffer]])</tt>.
305
- ## If given, +length+ must be an non-negative Integer (>= 0) or +nil+, and +buffer+ must
305
+ ## If given, +length+ must be a non-negative Integer (>= 0) or +nil+, and +buffer+ must
306
306
  ## be a String and may not be nil. If +length+ is given and not nil, then this method
307
307
  ## reads at most +length+ bytes from the input stream. If +length+ is not given or nil,
308
308
  ## then this method reads all data until EOF.
@@ -13,8 +13,6 @@ module Rack
13
13
 
14
14
  env['rack.logger'] = logger
15
15
  @app.call(env)
16
- ensure
17
- logger.close
18
16
  end
19
17
  end
20
18
  end
@@ -77,7 +77,8 @@ module Rack
77
77
  @rewindable_io.set_encoding(Encoding::BINARY) if @rewindable_io.respond_to?(:set_encoding)
78
78
  @rewindable_io.binmode
79
79
  if filesystem_has_posix_semantics?
80
- @rewindable_io.unlink
80
+ # Use ::File.unlink as 1.9.1 Tempfile has a bug where unlink closes the file!
81
+ ::File.unlink @rewindable_io.path
81
82
  raise 'Unlink failed. IO closed.' if @rewindable_io.closed?
82
83
  @unlinked = true
83
84
  end
@@ -117,6 +117,7 @@ module Rack
117
117
  end
118
118
  when 'X-Sendfile', 'X-Lighttpd-Send-File'
119
119
  path = F.expand_path(body.to_path)
120
+ headers['Content-Length'] = '0'
120
121
  headers[type] = path
121
122
  body = []
122
123
  when '', nil
@@ -179,14 +179,6 @@ module Rack
179
179
  end
180
180
 
181
181
  def start
182
- if options[:debug]
183
- $DEBUG = true
184
- require 'pp'
185
- p options[:server]
186
- pp wrapped_app
187
- pp app
188
- end
189
-
190
182
  if options[:warn]
191
183
  $-w = true
192
184
  end
@@ -199,6 +191,18 @@ module Rack
199
191
  require library
200
192
  end
201
193
 
194
+ if options[:debug]
195
+ $DEBUG = true
196
+ require 'pp'
197
+ p options[:server]
198
+ pp wrapped_app
199
+ pp app
200
+ end
201
+
202
+ # Touch the wrapped app, so that the config.ru is loaded before
203
+ # daemonization (i.e. before chdir, etc).
204
+ wrapped_app
205
+
202
206
  daemonize_app if options[:daemonize]
203
207
  write_pid if options[:pid]
204
208
 
@@ -226,6 +230,7 @@ module Rack
226
230
  args.clear if ENV.include?("REQUEST_METHOD")
227
231
 
228
232
  options.merge! opt_parser.parse! args
233
+ options[:config] = ::File.expand_path(options[:config])
229
234
  ENV["RACK_ENV"] = options[:environment]
230
235
  options
231
236
  end
@@ -135,7 +135,7 @@ module Rack
135
135
  "'" => "&#39;",
136
136
  '"' => "&quot;",
137
137
  }
138
- ESCAPE_HTML_PATTERN = Regexp.union(ESCAPE_HTML.keys)
138
+ ESCAPE_HTML_PATTERN = Regexp.union(*ESCAPE_HTML.keys)
139
139
 
140
140
  # Escape ampersands, brackets and quotes to their HTML/XML entities.
141
141
  def escape_html(string)
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "rack"
3
- s.version = "1.2.2"
3
+ s.version = "1.2.3"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.summary = "a modular Ruby webserver interface"
6
6
 
@@ -15,7 +15,7 @@ Also see http://rack.rubyforge.org.
15
15
  EOF
16
16
 
17
17
  s.files = Dir['{bin/*,contrib/*,example/*,lib/**/*,test/**/*}'] +
18
- %w(COPYING KNOWN-ISSUES rack.gemspec README SPEC)
18
+ %w(COPYING KNOWN-ISSUES rack.gemspec Rakefile README SPEC)
19
19
  s.bindir = 'bin'
20
20
  s.executables << 'rackup'
21
21
  s.require_path = 'lib'
@@ -0,0 +1,6 @@
1
+ require 'rubygems'
2
+ project = 'rack'
3
+ gemspec = File.expand_path("#{project}.gemspec", Dir.pwd)
4
+ Gem::Specification.load(gemspec).dependencies.each do |dep|
5
+ gem dep.name, *dep.requirement.as_list
6
+ end
@@ -2,19 +2,27 @@ require 'stringio'
2
2
  require 'rack/logger'
3
3
 
4
4
  describe Rack::Logger do
5
- should "log to rack.errors" do
6
- app = lambda { |env|
7
- log = env['rack.logger']
8
- log.debug("Created logger")
9
- log.info("Program started")
10
- log.warn("Nothing to do!")
5
+ app = lambda { |env|
6
+ log = env['rack.logger']
7
+ log.debug("Created logger")
8
+ log.info("Program started")
9
+ log.warn("Nothing to do!")
11
10
 
12
- [200, {'Content-Type' => 'text/plain'}, ["Hello, World!"]]
13
- }
11
+ [200, {'Content-Type' => 'text/plain'}, ["Hello, World!"]]
12
+ }
14
13
 
14
+ should "log to rack.errors" do
15
15
  errors = StringIO.new
16
16
  Rack::Logger.new(app).call('rack.errors' => errors)
17
17
  errors.string.should.match(/INFO -- : Program started/)
18
18
  errors.string.should.match(/WARN -- : Nothing to do/)
19
19
  end
20
+
21
+ should "conform to Rack::Lint" do
22
+ errors = StringIO.new
23
+ a = Rack::Lint.new(Rack::Logger.new(app))
24
+ Rack::MockRequest.new(a).get('/', 'rack.errors' => errors)
25
+ errors.string.should.match(/INFO -- : Program started/)
26
+ errors.string.should.match(/WARN -- : Nothing to do/)
27
+ end
20
28
  end
@@ -1,8 +1,9 @@
1
1
  require 'yaml'
2
2
  require 'net/http'
3
+ require 'rack/lint'
3
4
 
4
5
  class TestRequest
5
- NOSERIALIZE = [Method, Proc]
6
+ NOSERIALIZE = [Method, Proc, Rack::Lint::InputWrapper]
6
7
 
7
8
  def call(env)
8
9
  status = env["QUERY_STRING"] =~ /secret/ ? 403 : 200
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease: false
4
+ hash: 25
5
+ prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 2
9
- - 2
10
- version: 1.2.2
9
+ - 3
10
+ version: 1.2.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Christian Neukirchen
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-03-13 00:00:00 +01:00
18
+ date: 2011-05-23 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -123,135 +123,137 @@ extra_rdoc_files:
123
123
  files:
124
124
  - bin/rackup
125
125
  - contrib/rack_logo.svg
126
- - example/protectedlobster.ru
127
126
  - example/lobster.ru
128
127
  - example/protectedlobster.rb
129
- - lib/rack/session/cookie.rb
130
- - lib/rack/session/pool.rb
131
- - lib/rack/session/memcache.rb
132
- - lib/rack/session/abstract/id.rb
133
- - lib/rack/response.rb
134
- - lib/rack/conditionalget.rb
135
- - lib/rack/showstatus.rb
136
- - lib/rack/rewindable_input.rb
137
- - lib/rack/sendfile.rb
138
- - lib/rack/urlmap.rb
139
- - lib/rack/chunked.rb
140
- - lib/rack/head.rb
141
- - lib/rack/runtime.rb
142
- - lib/rack/handler/webrick.rb
143
- - lib/rack/handler/thin.rb
144
- - lib/rack/handler/scgi.rb
145
- - lib/rack/handler/mongrel.rb
146
- - lib/rack/handler/evented_mongrel.rb
147
- - lib/rack/handler/swiftiplied_mongrel.rb
148
- - lib/rack/handler/lsws.rb
149
- - lib/rack/handler/fastcgi.rb
150
- - lib/rack/handler/cgi.rb
151
- - lib/rack/lock.rb
128
+ - example/protectedlobster.ru
129
+ - lib/rack/auth/abstract/handler.rb
130
+ - lib/rack/auth/abstract/request.rb
131
+ - lib/rack/auth/basic.rb
132
+ - lib/rack/auth/digest/md5.rb
133
+ - lib/rack/auth/digest/nonce.rb
134
+ - lib/rack/auth/digest/params.rb
135
+ - lib/rack/auth/digest/request.rb
152
136
  - lib/rack/builder.rb
153
- - lib/rack/handler.rb
154
- - lib/rack/mock.rb
155
- - lib/rack/static.rb
156
- - lib/rack/deflater.rb
137
+ - lib/rack/cascade.rb
138
+ - lib/rack/chunked.rb
139
+ - lib/rack/commonlogger.rb
140
+ - lib/rack/conditionalget.rb
141
+ - lib/rack/config.rb
142
+ - lib/rack/content_length.rb
157
143
  - lib/rack/content_type.rb
158
- - lib/rack/server.rb
144
+ - lib/rack/deflater.rb
159
145
  - lib/rack/directory.rb
160
- - lib/rack/showexceptions.rb
146
+ - lib/rack/etag.rb
161
147
  - lib/rack/file.rb
162
- - lib/rack/request.rb
148
+ - lib/rack/handler/cgi.rb
149
+ - lib/rack/handler/evented_mongrel.rb
150
+ - lib/rack/handler/fastcgi.rb
151
+ - lib/rack/handler/lsws.rb
152
+ - lib/rack/handler/mongrel.rb
153
+ - lib/rack/handler/scgi.rb
154
+ - lib/rack/handler/swiftiplied_mongrel.rb
155
+ - lib/rack/handler/thin.rb
156
+ - lib/rack/handler/webrick.rb
157
+ - lib/rack/handler.rb
158
+ - lib/rack/head.rb
159
+ - lib/rack/lint.rb
163
160
  - lib/rack/lobster.rb
164
- - lib/rack/commonlogger.rb
165
- - lib/rack/config.rb
166
- - lib/rack/utils.rb
167
- - lib/rack/etag.rb
168
- - lib/rack/methodoverride.rb
169
- - lib/rack/cascade.rb
161
+ - lib/rack/lock.rb
170
162
  - lib/rack/logger.rb
171
- - lib/rack/auth/digest/request.rb
172
- - lib/rack/auth/digest/nonce.rb
173
- - lib/rack/auth/digest/params.rb
174
- - lib/rack/auth/digest/md5.rb
175
- - lib/rack/auth/basic.rb
176
- - lib/rack/auth/abstract/handler.rb
177
- - lib/rack/auth/abstract/request.rb
178
- - lib/rack/content_length.rb
163
+ - lib/rack/methodoverride.rb
164
+ - lib/rack/mime.rb
165
+ - lib/rack/mock.rb
179
166
  - lib/rack/nulllogger.rb
180
- - lib/rack/lint.rb
181
167
  - lib/rack/recursive.rb
182
- - lib/rack/mime.rb
183
168
  - lib/rack/reloader.rb
169
+ - lib/rack/request.rb
170
+ - lib/rack/response.rb
171
+ - lib/rack/rewindable_input.rb
172
+ - lib/rack/runtime.rb
173
+ - lib/rack/sendfile.rb
174
+ - lib/rack/server.rb
175
+ - lib/rack/session/abstract/id.rb
176
+ - lib/rack/session/cookie.rb
177
+ - lib/rack/session/memcache.rb
178
+ - lib/rack/session/pool.rb
179
+ - lib/rack/showexceptions.rb
180
+ - lib/rack/showstatus.rb
181
+ - lib/rack/static.rb
182
+ - lib/rack/urlmap.rb
183
+ - lib/rack/utils.rb
184
184
  - lib/rack.rb
185
- - test/spec_static.rb
186
- - test/spec_content_type.rb
187
- - test/spec_thin.rb
188
- - test/testrequest.rb
189
- - test/spec_auth_digest.rb
190
- - test/spec_response.rb
191
- - test/spec_file.rb
192
- - test/spec_rewindable_input.rb
193
- - test/spec_methodoverride.rb
194
- - test/spec_fastcgi.rb
195
- - test/spec_chunked.rb
196
- - test/spec_cgi.rb
197
- - test/multipart/semicolon
198
- - test/multipart/filename_with_escaped_quotes
185
+ - test/cgi/lighttpd.conf
186
+ - test/cgi/rackup_stub.rb
187
+ - test/cgi/sample_rackup.ru
188
+ - test/cgi/test
189
+ - test/cgi/test.fcgi
190
+ - test/cgi/test.ru
191
+ - test/gemloader.rb
192
+ - test/multipart/bad_robots
199
193
  - test/multipart/binary
200
- - test/multipart/fail_16384_nofile
201
- - test/multipart/filename_and_modification_param
202
- - test/multipart/text
203
- - test/multipart/ie
204
- - test/multipart/filename_with_percent_escaped_quotes
205
194
  - test/multipart/empty
206
- - test/multipart/none
195
+ - test/multipart/fail_16384_nofile
207
196
  - test/multipart/file1.txt
197
+ - test/multipart/filename_and_modification_param
198
+ - test/multipart/filename_with_escaped_quotes
208
199
  - test/multipart/filename_with_escaped_quotes_and_modification_param
209
- - test/multipart/nested
210
- - test/multipart/bad_robots
200
+ - test/multipart/filename_with_percent_escaped_quotes
211
201
  - test/multipart/filename_with_unescaped_quotes
212
- - test/spec_head.rb
213
- - test/spec_urlmap.rb
214
- - test/spec_mongrel.rb
215
- - test/spec_content_length.rb
216
- - test/spec_session_cookie.rb
217
- - test/spec_utils.rb
218
- - test/spec_showexceptions.rb
219
- - test/spec_lobster.rb
220
- - test/spec_logger.rb
221
- - test/spec_sendfile.rb
202
+ - test/multipart/ie
203
+ - test/multipart/nested
204
+ - test/multipart/none
205
+ - test/multipart/semicolon
206
+ - test/multipart/text
207
+ - test/rackup/config.ru
208
+ - test/spec_auth_basic.rb
209
+ - test/spec_auth_digest.rb
210
+ - test/spec_builder.rb
211
+ - test/spec_cascade.rb
212
+ - test/spec_cgi.rb
213
+ - test/spec_chunked.rb
214
+ - test/spec_commonlogger.rb
222
215
  - test/spec_conditionalget.rb
223
- - test/spec_lint.rb
216
+ - test/spec_config.rb
217
+ - test/spec_content_length.rb
218
+ - test/spec_content_type.rb
224
219
  - test/spec_deflater.rb
225
- - test/rackup/config.ru
226
- - test/spec_showstatus.rb
220
+ - test/spec_directory.rb
221
+ - test/spec_etag.rb
222
+ - test/spec_fastcgi.rb
223
+ - test/spec_file.rb
224
+ - test/spec_handler.rb
225
+ - test/spec_head.rb
226
+ - test/spec_lint.rb
227
+ - test/spec_lobster.rb
227
228
  - test/spec_lock.rb
229
+ - test/spec_logger.rb
230
+ - test/spec_methodoverride.rb
231
+ - test/spec_mock.rb
232
+ - test/spec_mongrel.rb
228
233
  - test/spec_nulllogger.rb
229
- - test/spec_config.rb
230
- - test/spec_session_memcache.rb
234
+ - test/spec_recursive.rb
235
+ - test/spec_request.rb
236
+ - test/spec_response.rb
237
+ - test/spec_rewindable_input.rb
231
238
  - test/spec_runtime.rb
232
- - test/spec_commonlogger.rb
233
- - test/spec_directory.rb
234
- - test/spec_cascade.rb
239
+ - test/spec_sendfile.rb
240
+ - test/spec_session_cookie.rb
241
+ - test/spec_session_memcache.rb
242
+ - test/spec_session_pool.rb
243
+ - test/spec_showexceptions.rb
244
+ - test/spec_showstatus.rb
245
+ - test/spec_static.rb
246
+ - test/spec_thin.rb
247
+ - test/spec_urlmap.rb
248
+ - test/spec_utils.rb
235
249
  - test/spec_webrick.rb
236
- - test/spec_request.rb
237
- - test/spec_etag.rb
238
- - test/spec_mock.rb
239
- - test/cgi/sample_rackup.ru
240
- - test/cgi/test
241
- - test/cgi/test.fcgi
242
- - test/cgi/lighttpd.conf
243
- - test/cgi/rackup_stub.rb
244
- - test/cgi/test.ru
245
- - test/spec_builder.rb
246
- - test/spec_auth_basic.rb
250
+ - test/testrequest.rb
247
251
  - test/unregistered_handler/rack/handler/unregistered.rb
248
252
  - test/unregistered_handler/rack/handler/unregistered_long_one.rb
249
- - test/spec_handler.rb
250
- - test/spec_session_pool.rb
251
- - test/spec_recursive.rb
252
253
  - COPYING
253
254
  - KNOWN-ISSUES
254
255
  - rack.gemspec
256
+ - Rakefile
255
257
  - README
256
258
  - SPEC
257
259
  has_rdoc: true
@@ -284,50 +286,50 @@ required_rubygems_version: !ruby/object:Gem::Requirement
284
286
  requirements: []
285
287
 
286
288
  rubyforge_project: rack
287
- rubygems_version: 1.3.7
289
+ rubygems_version: 1.5.2
288
290
  signing_key:
289
291
  specification_version: 3
290
292
  summary: a modular Ruby webserver interface
291
293
  test_files:
292
- - test/spec_static.rb
293
- - test/spec_content_type.rb
294
- - test/spec_thin.rb
294
+ - test/spec_auth_basic.rb
295
295
  - test/spec_auth_digest.rb
296
- - test/spec_response.rb
297
- - test/spec_file.rb
298
- - test/spec_rewindable_input.rb
299
- - test/spec_methodoverride.rb
300
- - test/spec_fastcgi.rb
301
- - test/spec_chunked.rb
296
+ - test/spec_builder.rb
297
+ - test/spec_cascade.rb
302
298
  - test/spec_cgi.rb
303
- - test/spec_head.rb
304
- - test/spec_urlmap.rb
305
- - test/spec_mongrel.rb
306
- - test/spec_content_length.rb
307
- - test/spec_session_cookie.rb
308
- - test/spec_utils.rb
309
- - test/spec_showexceptions.rb
310
- - test/spec_lobster.rb
311
- - test/spec_logger.rb
312
- - test/spec_sendfile.rb
299
+ - test/spec_chunked.rb
300
+ - test/spec_commonlogger.rb
313
301
  - test/spec_conditionalget.rb
314
- - test/spec_lint.rb
315
- - test/spec_deflater.rb
316
- - test/spec_showstatus.rb
317
- - test/spec_lock.rb
318
- - test/spec_nulllogger.rb
319
302
  - test/spec_config.rb
320
- - test/spec_session_memcache.rb
321
- - test/spec_runtime.rb
322
- - test/spec_commonlogger.rb
303
+ - test/spec_content_length.rb
304
+ - test/spec_content_type.rb
305
+ - test/spec_deflater.rb
323
306
  - test/spec_directory.rb
324
- - test/spec_cascade.rb
325
- - test/spec_webrick.rb
326
- - test/spec_request.rb
327
307
  - test/spec_etag.rb
328
- - test/spec_mock.rb
329
- - test/spec_builder.rb
330
- - test/spec_auth_basic.rb
308
+ - test/spec_fastcgi.rb
309
+ - test/spec_file.rb
331
310
  - test/spec_handler.rb
332
- - test/spec_session_pool.rb
311
+ - test/spec_head.rb
312
+ - test/spec_lint.rb
313
+ - test/spec_lobster.rb
314
+ - test/spec_lock.rb
315
+ - test/spec_logger.rb
316
+ - test/spec_methodoverride.rb
317
+ - test/spec_mock.rb
318
+ - test/spec_mongrel.rb
319
+ - test/spec_nulllogger.rb
333
320
  - test/spec_recursive.rb
321
+ - test/spec_request.rb
322
+ - test/spec_response.rb
323
+ - test/spec_rewindable_input.rb
324
+ - test/spec_runtime.rb
325
+ - test/spec_sendfile.rb
326
+ - test/spec_session_cookie.rb
327
+ - test/spec_session_memcache.rb
328
+ - test/spec_session_pool.rb
329
+ - test/spec_showexceptions.rb
330
+ - test/spec_showstatus.rb
331
+ - test/spec_static.rb
332
+ - test/spec_thin.rb
333
+ - test/spec_urlmap.rb
334
+ - test/spec_utils.rb
335
+ - test/spec_webrick.rb