unicorn 0.5.2 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +1 -0
- data/Manifest +1 -0
- data/lib/unicorn.rb +1 -1
- data/lib/unicorn/const.rb +1 -3
- data/lib/unicorn/http_response.rb +6 -5
- data/local.mk.sample +2 -2
- data/test/rails/test_rails.rb +13 -13
- data/test/unit/test_response.rb +2 -2
- data/unicorn.gemspec +3 -3
- metadata +7 -6
data/CHANGELOG
CHANGED
data/Manifest
CHANGED
data/lib/unicorn.rb
CHANGED
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.
|
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
|
-
"
|
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:
|
data/test/rails/test_rails.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
223
|
+
assert_equal '404 Not Found', res['Status']
|
224
224
|
end
|
225
225
|
|
226
226
|
def teardown
|
data/test/unit/test_response.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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.
|
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/
|
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/
|
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.
|
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
|