unicorn 0.5.2 → 0.5.3

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.
data/CHANGELOG CHANGED
@@ -1,3 +1,4 @@
1
+ v0.5.3 - fix 100% CPU usage when idle, small cleanups
1
2
  v0.5.2 - force Status: header for compat, small cleanups
2
3
  v0.5.1 - exit correctly on INT/TERM, QUIT is still recommended, however
3
4
  v0.5.0 - {after,before}_fork API change, small tweaks/fixes
data/Manifest CHANGED
@@ -125,5 +125,6 @@ test/unit/test_http_parser.rb
125
125
  test/unit/test_request.rb
126
126
  test/unit/test_response.rb
127
127
  test/unit/test_server.rb
128
+ test/unit/test_signals.rb
128
129
  test/unit/test_socket_helper.rb
129
130
  test/unit/test_upload.rb
data/lib/unicorn.rb CHANGED
@@ -495,7 +495,7 @@ module Unicorn
495
495
  # client closed the socket even before accept
496
496
  client.close rescue nil
497
497
  ensure
498
- tempfile.chmod(nr += 1)
498
+ tempfile.chmod(nr += 1) if client
499
499
  break if nr < 0
500
500
  end
501
501
  end
data/lib/unicorn/const.rb CHANGED
@@ -49,8 +49,6 @@ module Unicorn
49
49
  # gave about a 3% to 10% performance improvement over using the strings directly.
50
50
  # Symbols did not really improve things much compared to constants.
51
51
  module Const
52
- DATE="Date".freeze
53
-
54
52
  # This is the part of the path after the SCRIPT_NAME.
55
53
  PATH_INFO="PATH_INFO".freeze
56
54
 
@@ -58,7 +56,7 @@ module Unicorn
58
56
  REQUEST_URI='REQUEST_URI'.freeze
59
57
  REQUEST_PATH='REQUEST_PATH'.freeze
60
58
 
61
- UNICORN_VERSION="0.5.2".freeze
59
+ UNICORN_VERSION="0.5.3".freeze
62
60
 
63
61
  UNICORN_TMP_BASE="unicorn".freeze
64
62
 
@@ -25,15 +25,13 @@ module Unicorn
25
25
  # Connection: and Date: headers no matter what (if anything) our
26
26
  # Rack application sent us.
27
27
  SKIP = { 'connection' => true, 'date' => true, 'status' => true }.freeze
28
+ HEADER_OUT = [ "Connection: close" ] # :nodoc
28
29
 
29
30
  # writes the rack_response to socket as an HTTP response
30
31
  def self.write(socket, rack_response)
31
32
  status, headers, body = rack_response
32
33
  status = "#{status} #{HTTP_STATUS_CODES[status]}"
33
-
34
- # Date is required by HTTP/1.1 as long as our clock can be trusted.
35
- # Some broken clients require a "Status" header so we accomodate them
36
- out = [ "Date: #{Time.now.httpdate}", "Status: #{status}" ]
34
+ out = HEADER_OUT.dup # shallow copy
37
35
 
38
36
  # Don't bother enforcing duplicate supression, it's a Hash most of
39
37
  # the time anyways so just hope our app knows what it's doing
@@ -48,9 +46,12 @@ module Unicorn
48
46
 
49
47
  # Rack should enforce Content-Length or chunked transfer encoding,
50
48
  # so don't worry or care about them.
49
+ # Date is required by HTTP/1.1 as long as our clock can be trusted.
50
+ # Some broken clients require a "Status" header so we accomodate them
51
51
  socket_write(socket,
52
52
  "HTTP/1.1 #{status}\r\n" \
53
- "Connection: close\r\n" \
53
+ "Date: #{Time.now.httpdate}\r\n" \
54
+ "Status: #{status}\r\n" \
54
55
  "#{out.join("\r\n")}\r\n\r\n")
55
56
  body.each { |chunk| socket_write(socket, chunk) }
56
57
  socket.close # uncorks the socket immediately
data/local.mk.sample CHANGED
@@ -23,9 +23,9 @@ SHELL := /bin/bash -e -o pipefail
23
23
 
24
24
  full-test: test-18 test-19
25
25
  test-18:
26
- $(MAKE) test 2>&1 | sed -u -e 's!^!1.8 !'
26
+ $(MAKE) test test-rails 2>&1 | sed -u -e 's!^!1.8 !'
27
27
  test-19:
28
- $(MAKE) test r19=1 2>&1 | sed -u -e 's!^!1.9 !'
28
+ $(MAKE) test test-rails r19=1 2>&1 | sed -u -e 's!^!1.9 !'
29
29
 
30
30
  # publishes docs to http://unicorn.bogomips.org
31
31
  publish_doc:
@@ -98,12 +98,12 @@ logger Logger.new('#{COMMON_TMP.path}')
98
98
  assert_equal "FOO\n", res.body
99
99
  assert_match %r{^text/html\b}, res['Content-Type']
100
100
  assert_equal "4", res['Content-Length']
101
- assert_nil res['Status']
101
+ assert_equal "200 OK", res['Status']
102
102
 
103
103
  # can we set cookies?
104
104
  res = Net::HTTP.get_response(URI.parse("http://#@addr:#@port/foo/xcookie"))
105
105
  assert_equal "200", res.code
106
- assert_nil res['Status']
106
+ assert_equal "200 OK", res['Status']
107
107
  cookies = res.get_fields('Set-Cookie')
108
108
  assert_equal 2, cookies.size
109
109
  assert_equal 1, cookies.grep(/\A_unicorn_rails_test\./).size
@@ -112,7 +112,7 @@ logger Logger.new('#{COMMON_TMP.path}')
112
112
  # how about just a session?
113
113
  res = Net::HTTP.get_response(URI.parse("http://#@addr:#@port/foo/xnotice"))
114
114
  assert_equal "200", res.code
115
- assert_nil res['Status']
115
+ assert_equal "200 OK", res['Status']
116
116
  cookies = res.get_fields('Set-Cookie')
117
117
  assert_equal 1, cookies.size
118
118
  assert_equal 1, cookies.grep(/\A_unicorn_rails_test\./).size
@@ -128,7 +128,7 @@ logger Logger.new('#{COMMON_TMP.path}')
128
128
  assert_equal Hash, params.class
129
129
  assert_equal 'b', params['a']
130
130
  assert_equal 'd', params['c']
131
- assert_nil res['Status']
131
+ assert_equal "200 OK", res['Status']
132
132
 
133
133
  # try uploading a big file
134
134
  tmp = Tempfile.new('random')
@@ -153,52 +153,52 @@ logger Logger.new('#{COMMON_TMP.path}')
153
153
  assert_equal 1, grepped.size
154
154
  assert_match %r{^text/plain}, grepped.first.split(/\s*:\s*/)[1]
155
155
 
156
- assert_equal 0, resp.grep(/^Status:/i).size # Rack hates "Status: " lines
156
+ assert_equal 1, resp.grep(/^Status:/i).size
157
157
 
158
158
  # make sure we can get 403 responses, too
159
159
  uri = URI.parse("http://#@addr:#@port/foo/xpost")
160
160
  wait_master_ready("test_stderr.#$$.log")
161
161
  res = Net::HTTP.get_response(uri)
162
162
  assert_equal "403", res.code
163
- assert_nil res['Status']
163
+ assert_equal "403 Forbidden", res['Status']
164
164
 
165
165
  # non existent controller
166
166
  uri = URI.parse("http://#@addr:#@port/asdf")
167
167
  res = Net::HTTP.get_response(uri)
168
168
  assert_equal "404", res.code
169
- assert_nil res['Status']
169
+ assert_equal "404 Not Found", res['Status']
170
170
 
171
171
  # static files
172
172
 
173
173
  # ensure file we're about to serve is not there yet
174
174
  res = Net::HTTP.get_response(URI.parse("http://#@addr:#@port/pid.txt"))
175
- assert_nil res['Status']
175
+ assert_equal "404 Not Found", res['Status']
176
176
  assert_equal '404', res.code
177
177
 
178
178
  # can we serve text files based on suffix?
179
179
  File.open("public/pid.txt", "wb") { |fp| fp.syswrite("#$$\n") }
180
180
  res = Net::HTTP.get_response(URI.parse("http://#@addr:#@port/pid.txt"))
181
181
  assert_equal '200', res.code
182
+ assert_equal "200 OK", res['Status']
182
183
  assert_match %r{^text/plain}, res['Content-Type']
183
184
  assert_equal "#$$\n", res.body
184
- assert_nil res['Status']
185
185
 
186
186
  # can we serve HTML files based on suffix?
187
187
  assert File.exist?("public/500.html")
188
188
  res = Net::HTTP.get_response(URI.parse("http://#@addr:#@port/500.html"))
189
189
  assert_equal '200', res.code
190
+ assert_equal '200 OK', res['Status']
190
191
  assert_match %r{^text/html}, res['Content-Type']
191
192
  five_hundred_body = res.body
192
- assert_nil res['Status']
193
193
 
194
194
  # lets try pretending 500 is a controller that got cached
195
195
  assert ! File.exist?("public/500")
196
196
  assert_equal five_hundred_body, File.read("public/500.html")
197
197
  res = Net::HTTP.get_response(URI.parse("http://#@addr:#@port/500"))
198
198
  assert_equal '200', res.code
199
+ assert_equal '200 OK', res['Status']
199
200
  assert_match %r{^text/html}, res['Content-Type']
200
201
  assert_equal five_hundred_body, res.body
201
- assert_nil res['Status']
202
202
  end
203
203
 
204
204
  def test_alt_url_root
@@ -213,14 +213,14 @@ logger Logger.new('#{COMMON_TMP.path}')
213
213
  # p res.body
214
214
  # system 'cat', 'log/development.log'
215
215
  assert_equal "200", res.code
216
+ assert_equal '200 OK', res['Status']
216
217
  assert_equal "FOO\n", res.body
217
218
  assert_match %r{^text/html\b}, res['Content-Type']
218
219
  assert_equal "4", res['Content-Length']
219
- assert_nil res['Status']
220
220
 
221
221
  res = Net::HTTP.get_response(URI.parse("http://#@addr:#@port/foo"))
222
222
  assert_equal "404", res.code
223
- assert_nil res['Status']
223
+ assert_equal '404 Not Found', res['Status']
224
224
  end
225
225
 
226
226
  def teardown
@@ -60,7 +60,7 @@ class ResponseTest < Test::Unit::TestCase
60
60
  out = StringIO.new
61
61
  HttpResponse.write(out,[200, {"X-Whatever" => "stuff"}, []])
62
62
  assert out.closed?
63
- assert_match(/^Status: 200 OK\r\nX-Whatever: stuff\r\n/, out.string)
63
+ assert_equal 1, out.string.split(/\r\n/).grep(/^Status: 200 OK/i).size
64
64
  end
65
65
 
66
66
  # we always favor the code returned by the application, since "Status"
@@ -71,7 +71,7 @@ class ResponseTest < Test::Unit::TestCase
71
71
  header_hash = {"X-Whatever" => "stuff", 'StaTus' => "666" }
72
72
  HttpResponse.write(out,[200, header_hash, []])
73
73
  assert out.closed?
74
- assert_match(/^Status: 200 OK\r\nX-Whatever: stuff\r\n/, out.string)
74
+ assert_equal 1, out.string.split(/\r\n/).grep(/^Status: 200 OK/i).size
75
75
  assert_equal 1, out.string.split(/\r\n/).grep(/^Status:/i).size
76
76
  end
77
77
 
data/unicorn.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{unicorn}
5
- s.version = "0.5.2"
5
+ s.version = "0.5.3"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Eric Wong"]
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
12
12
  s.executables = ["unicorn", "unicorn_rails"]
13
13
  s.extensions = ["ext/unicorn/http11/extconf.rb"]
14
14
  s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README", "TODO", "bin/unicorn", "bin/unicorn_rails", "ext/unicorn/http11/ext_help.h", "ext/unicorn/http11/extconf.rb", "ext/unicorn/http11/http11.c", "ext/unicorn/http11/http11_parser.c", "ext/unicorn/http11/http11_parser.h", "ext/unicorn/http11/http11_parser.rl", "ext/unicorn/http11/http11_parser_common.rl", "lib/unicorn.rb", "lib/unicorn/app/exec_cgi.rb", "lib/unicorn/app/old_rails.rb", "lib/unicorn/app/old_rails/static.rb", "lib/unicorn/cgi_wrapper.rb", "lib/unicorn/configurator.rb", "lib/unicorn/const.rb", "lib/unicorn/http_request.rb", "lib/unicorn/http_response.rb", "lib/unicorn/launcher.rb", "lib/unicorn/socket.rb", "lib/unicorn/util.rb"]
15
- s.files = [".document", ".gitignore", "CHANGELOG", "CONTRIBUTORS", "DESIGN", "GNUmakefile", "LICENSE", "Manifest", "PHILOSOPHY", "README", "Rakefile", "SIGNALS", "TODO", "bin/unicorn", "bin/unicorn_rails", "ext/unicorn/http11/ext_help.h", "ext/unicorn/http11/extconf.rb", "ext/unicorn/http11/http11.c", "ext/unicorn/http11/http11_parser.c", "ext/unicorn/http11/http11_parser.h", "ext/unicorn/http11/http11_parser.rl", "ext/unicorn/http11/http11_parser_common.rl", "lib/unicorn.rb", "lib/unicorn/app/exec_cgi.rb", "lib/unicorn/app/old_rails.rb", "lib/unicorn/app/old_rails/static.rb", "lib/unicorn/cgi_wrapper.rb", "lib/unicorn/configurator.rb", "lib/unicorn/const.rb", "lib/unicorn/http_request.rb", "lib/unicorn/http_response.rb", "lib/unicorn/launcher.rb", "lib/unicorn/socket.rb", "lib/unicorn/util.rb", "local.mk.sample", "setup.rb", "test/aggregate.rb", "test/benchmark/README", "test/benchmark/big_request.rb", "test/benchmark/dd.ru", "test/benchmark/request.rb", "test/benchmark/response.rb", "test/exec/README", "test/exec/test_exec.rb", "test/rails/app-1.2.3/.gitignore", "test/rails/app-1.2.3/Rakefile", "test/rails/app-1.2.3/app/controllers/application.rb", "test/rails/app-1.2.3/app/controllers/foo_controller.rb", "test/rails/app-1.2.3/app/helpers/application_helper.rb", "test/rails/app-1.2.3/config/boot.rb", "test/rails/app-1.2.3/config/database.yml", "test/rails/app-1.2.3/config/environment.rb", "test/rails/app-1.2.3/config/environments/development.rb", "test/rails/app-1.2.3/config/environments/production.rb", "test/rails/app-1.2.3/config/routes.rb", "test/rails/app-1.2.3/db/.gitignore", "test/rails/app-1.2.3/log/.gitignore", "test/rails/app-1.2.3/public/404.html", "test/rails/app-1.2.3/public/500.html", "test/rails/app-2.0.2/.gitignore", "test/rails/app-2.0.2/Rakefile", "test/rails/app-2.0.2/app/controllers/application.rb", "test/rails/app-2.0.2/app/controllers/foo_controller.rb", "test/rails/app-2.0.2/app/helpers/application_helper.rb", "test/rails/app-2.0.2/config/boot.rb", "test/rails/app-2.0.2/config/database.yml", "test/rails/app-2.0.2/config/environment.rb", "test/rails/app-2.0.2/config/environments/development.rb", "test/rails/app-2.0.2/config/environments/production.rb", "test/rails/app-2.0.2/config/routes.rb", "test/rails/app-2.0.2/db/.gitignore", "test/rails/app-2.0.2/log/.gitignore", "test/rails/app-2.0.2/public/404.html", "test/rails/app-2.0.2/public/500.html", "test/rails/app-2.1.2/.gitignore", "test/rails/app-2.1.2/Rakefile", "test/rails/app-2.1.2/app/controllers/application.rb", "test/rails/app-2.1.2/app/controllers/foo_controller.rb", "test/rails/app-2.1.2/app/helpers/application_helper.rb", "test/rails/app-2.1.2/config/boot.rb", "test/rails/app-2.1.2/config/database.yml", "test/rails/app-2.1.2/config/environment.rb", "test/rails/app-2.1.2/config/environments/development.rb", "test/rails/app-2.1.2/config/environments/production.rb", "test/rails/app-2.1.2/config/routes.rb", "test/rails/app-2.1.2/db/.gitignore", "test/rails/app-2.1.2/log/.gitignore", "test/rails/app-2.1.2/public/404.html", "test/rails/app-2.1.2/public/500.html", "test/rails/app-2.2.2/.gitignore", "test/rails/app-2.2.2/Rakefile", "test/rails/app-2.2.2/app/controllers/application.rb", "test/rails/app-2.2.2/app/controllers/foo_controller.rb", "test/rails/app-2.2.2/app/helpers/application_helper.rb", "test/rails/app-2.2.2/config/boot.rb", "test/rails/app-2.2.2/config/database.yml", "test/rails/app-2.2.2/config/environment.rb", "test/rails/app-2.2.2/config/environments/development.rb", "test/rails/app-2.2.2/config/environments/production.rb", "test/rails/app-2.2.2/config/routes.rb", "test/rails/app-2.2.2/db/.gitignore", "test/rails/app-2.2.2/log/.gitignore", "test/rails/app-2.2.2/public/404.html", "test/rails/app-2.2.2/public/500.html", "test/rails/app-2.3.2.1/.gitignore", "test/rails/app-2.3.2.1/Rakefile", "test/rails/app-2.3.2.1/app/controllers/application_controller.rb", "test/rails/app-2.3.2.1/app/controllers/foo_controller.rb", "test/rails/app-2.3.2.1/app/helpers/application_helper.rb", "test/rails/app-2.3.2.1/config/boot.rb", "test/rails/app-2.3.2.1/config/database.yml", "test/rails/app-2.3.2.1/config/environment.rb", "test/rails/app-2.3.2.1/config/environments/development.rb", "test/rails/app-2.3.2.1/config/environments/production.rb", "test/rails/app-2.3.2.1/config/routes.rb", "test/rails/app-2.3.2.1/db/.gitignore", "test/rails/app-2.3.2.1/log/.gitignore", "test/rails/app-2.3.2.1/public/404.html", "test/rails/app-2.3.2.1/public/500.html", "test/rails/test_rails.rb", "test/test_helper.rb", "test/tools/trickletest.rb", "test/unit/test_configurator.rb", "test/unit/test_http_parser.rb", "test/unit/test_request.rb", "test/unit/test_response.rb", "test/unit/test_server.rb", "test/unit/test_socket_helper.rb", "test/unit/test_upload.rb", "unicorn.gemspec", "test/unit/test_signals.rb"]
15
+ s.files = [".document", ".gitignore", "CHANGELOG", "CONTRIBUTORS", "DESIGN", "GNUmakefile", "LICENSE", "Manifest", "PHILOSOPHY", "README", "Rakefile", "SIGNALS", "TODO", "bin/unicorn", "bin/unicorn_rails", "ext/unicorn/http11/ext_help.h", "ext/unicorn/http11/extconf.rb", "ext/unicorn/http11/http11.c", "ext/unicorn/http11/http11_parser.c", "ext/unicorn/http11/http11_parser.h", "ext/unicorn/http11/http11_parser.rl", "ext/unicorn/http11/http11_parser_common.rl", "lib/unicorn.rb", "lib/unicorn/app/exec_cgi.rb", "lib/unicorn/app/old_rails.rb", "lib/unicorn/app/old_rails/static.rb", "lib/unicorn/cgi_wrapper.rb", "lib/unicorn/configurator.rb", "lib/unicorn/const.rb", "lib/unicorn/http_request.rb", "lib/unicorn/http_response.rb", "lib/unicorn/launcher.rb", "lib/unicorn/socket.rb", "lib/unicorn/util.rb", "local.mk.sample", "setup.rb", "test/aggregate.rb", "test/benchmark/README", "test/benchmark/big_request.rb", "test/benchmark/dd.ru", "test/benchmark/request.rb", "test/benchmark/response.rb", "test/exec/README", "test/exec/test_exec.rb", "test/rails/app-1.2.3/.gitignore", "test/rails/app-1.2.3/Rakefile", "test/rails/app-1.2.3/app/controllers/application.rb", "test/rails/app-1.2.3/app/controllers/foo_controller.rb", "test/rails/app-1.2.3/app/helpers/application_helper.rb", "test/rails/app-1.2.3/config/boot.rb", "test/rails/app-1.2.3/config/database.yml", "test/rails/app-1.2.3/config/environment.rb", "test/rails/app-1.2.3/config/environments/development.rb", "test/rails/app-1.2.3/config/environments/production.rb", "test/rails/app-1.2.3/config/routes.rb", "test/rails/app-1.2.3/db/.gitignore", "test/rails/app-1.2.3/log/.gitignore", "test/rails/app-1.2.3/public/404.html", "test/rails/app-1.2.3/public/500.html", "test/rails/app-2.0.2/.gitignore", "test/rails/app-2.0.2/Rakefile", "test/rails/app-2.0.2/app/controllers/application.rb", "test/rails/app-2.0.2/app/controllers/foo_controller.rb", "test/rails/app-2.0.2/app/helpers/application_helper.rb", "test/rails/app-2.0.2/config/boot.rb", "test/rails/app-2.0.2/config/database.yml", "test/rails/app-2.0.2/config/environment.rb", "test/rails/app-2.0.2/config/environments/development.rb", "test/rails/app-2.0.2/config/environments/production.rb", "test/rails/app-2.0.2/config/routes.rb", "test/rails/app-2.0.2/db/.gitignore", "test/rails/app-2.0.2/log/.gitignore", "test/rails/app-2.0.2/public/404.html", "test/rails/app-2.0.2/public/500.html", "test/rails/app-2.1.2/.gitignore", "test/rails/app-2.1.2/Rakefile", "test/rails/app-2.1.2/app/controllers/application.rb", "test/rails/app-2.1.2/app/controllers/foo_controller.rb", "test/rails/app-2.1.2/app/helpers/application_helper.rb", "test/rails/app-2.1.2/config/boot.rb", "test/rails/app-2.1.2/config/database.yml", "test/rails/app-2.1.2/config/environment.rb", "test/rails/app-2.1.2/config/environments/development.rb", "test/rails/app-2.1.2/config/environments/production.rb", "test/rails/app-2.1.2/config/routes.rb", "test/rails/app-2.1.2/db/.gitignore", "test/rails/app-2.1.2/log/.gitignore", "test/rails/app-2.1.2/public/404.html", "test/rails/app-2.1.2/public/500.html", "test/rails/app-2.2.2/.gitignore", "test/rails/app-2.2.2/Rakefile", "test/rails/app-2.2.2/app/controllers/application.rb", "test/rails/app-2.2.2/app/controllers/foo_controller.rb", "test/rails/app-2.2.2/app/helpers/application_helper.rb", "test/rails/app-2.2.2/config/boot.rb", "test/rails/app-2.2.2/config/database.yml", "test/rails/app-2.2.2/config/environment.rb", "test/rails/app-2.2.2/config/environments/development.rb", "test/rails/app-2.2.2/config/environments/production.rb", "test/rails/app-2.2.2/config/routes.rb", "test/rails/app-2.2.2/db/.gitignore", "test/rails/app-2.2.2/log/.gitignore", "test/rails/app-2.2.2/public/404.html", "test/rails/app-2.2.2/public/500.html", "test/rails/app-2.3.2.1/.gitignore", "test/rails/app-2.3.2.1/Rakefile", "test/rails/app-2.3.2.1/app/controllers/application_controller.rb", "test/rails/app-2.3.2.1/app/controllers/foo_controller.rb", "test/rails/app-2.3.2.1/app/helpers/application_helper.rb", "test/rails/app-2.3.2.1/config/boot.rb", "test/rails/app-2.3.2.1/config/database.yml", "test/rails/app-2.3.2.1/config/environment.rb", "test/rails/app-2.3.2.1/config/environments/development.rb", "test/rails/app-2.3.2.1/config/environments/production.rb", "test/rails/app-2.3.2.1/config/routes.rb", "test/rails/app-2.3.2.1/db/.gitignore", "test/rails/app-2.3.2.1/log/.gitignore", "test/rails/app-2.3.2.1/public/404.html", "test/rails/app-2.3.2.1/public/500.html", "test/rails/test_rails.rb", "test/test_helper.rb", "test/tools/trickletest.rb", "test/unit/test_configurator.rb", "test/unit/test_http_parser.rb", "test/unit/test_request.rb", "test/unit/test_response.rb", "test/unit/test_server.rb", "test/unit/test_signals.rb", "test/unit/test_socket_helper.rb", "test/unit/test_upload.rb", "unicorn.gemspec"]
16
16
  s.has_rdoc = true
17
17
  s.homepage = %q{http://unicorn.bogomips.org}
18
18
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Unicorn", "--main", "README"]
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.rubyforge_project = %q{unicorn}
21
21
  s.rubygems_version = %q{1.3.1}
22
22
  s.summary = %q{A small fast HTTP library and server for Rack applications.}
23
- s.test_files = ["test/unit/test_configurator.rb", "test/unit/test_response.rb", "test/unit/test_request.rb", "test/unit/test_signals.rb", "test/unit/test_upload.rb", "test/unit/test_http_parser.rb", "test/unit/test_socket_helper.rb", "test/unit/test_server.rb"]
23
+ s.test_files = ["test/unit/test_request.rb", "test/unit/test_http_parser.rb", "test/unit/test_server.rb", "test/unit/test_response.rb", "test/unit/test_configurator.rb", "test/unit/test_upload.rb", "test/unit/test_signals.rb", "test/unit/test_socket_helper.rb"]
24
24
 
25
25
  if s.respond_to? :specification_version then
26
26
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unicorn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Wong
@@ -174,6 +174,7 @@ files:
174
174
  - test/unit/test_request.rb
175
175
  - test/unit/test_response.rb
176
176
  - test/unit/test_server.rb
177
+ - test/unit/test_signals.rb
177
178
  - test/unit/test_socket_helper.rb
178
179
  - test/unit/test_upload.rb
179
180
  - unicorn.gemspec
@@ -210,11 +211,11 @@ signing_key:
210
211
  specification_version: 2
211
212
  summary: A small fast HTTP library and server for Rack applications.
212
213
  test_files:
213
- - test/unit/test_configurator.rb
214
- - test/unit/test_response.rb
215
214
  - test/unit/test_request.rb
216
- - test/unit/test_signals.rb
217
- - test/unit/test_upload.rb
218
215
  - test/unit/test_http_parser.rb
219
- - test/unit/test_socket_helper.rb
220
216
  - test/unit/test_server.rb
217
+ - test/unit/test_response.rb
218
+ - test/unit/test_configurator.rb
219
+ - test/unit/test_upload.rb
220
+ - test/unit/test_signals.rb
221
+ - test/unit/test_socket_helper.rb