mongrel2 0.44.0 → 0.45.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/ChangeLog +306 -1
- data/History.rdoc +9 -0
- data/README.rdoc +1 -1
- data/Rakefile +7 -7
- data/lib/mongrel2.rb +3 -3
- data/lib/mongrel2/config.rb +12 -4
- data/lib/mongrel2/connection.rb +1 -1
- data/lib/mongrel2/httprequest.rb +3 -1
- data/spec/mongrel2/config/directory_spec.rb +0 -5
- data/spec/mongrel2/config/dsl_spec.rb +0 -5
- data/spec/mongrel2/config/handler_spec.rb +1 -4
- data/spec/mongrel2/config/log_spec.rb +0 -5
- data/spec/mongrel2/config/route_spec.rb +0 -5
- data/spec/mongrel2/config/server_spec.rb +0 -5
- data/spec/mongrel2/config_spec.rb +0 -2
- data/spec/mongrel2/connection_spec.rb +16 -5
- data/spec/mongrel2/control_spec.rb +0 -2
- data/spec/mongrel2/handler_spec.rb +0 -5
- data/spec/mongrel2/httprequest_spec.rb +7 -5
- data/spec/mongrel2/httpresponse_spec.rb +0 -8
- data/spec/mongrel2/table_spec.rb +0 -9
- data/spec/mongrel2/websocket_spec.rb +0 -4
- metadata +47 -42
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ef619e111641754b0668683b6ef6c81f28c3134
|
4
|
+
data.tar.gz: 28a063bc82ad32cd833f5ad892de69e468ddc032
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: deb67e014b158c381a4db03aba4cca3f6332b13765f54a6937be8f24b013250f86005ed51f6cc596b612daa464fc1e08a319286e6d938c1a87ae655662115bc9
|
7
|
+
data.tar.gz: 317de2b99b390406841bf76954413dc2053045f54cd1d0d9feb05221f75f7e1ef3b4cf4d1009255dd53baa597366de82744f899f2c54c0217da6eb9a513e057a
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/ChangeLog
CHANGED
@@ -1,10 +1,315 @@
|
|
1
|
+
2016-11-03 Michael Granger <ged@FaerieMUD.org>
|
2
|
+
|
3
|
+
* History.rdoc, lib/mongrel2.rb:
|
4
|
+
Bump minor version, update history
|
5
|
+
[0ef122fb3bb8] [github/master, tip]
|
6
|
+
|
7
|
+
* lib/mongrel2/httprequest.rb, mongrel2.gemspec,
|
8
|
+
spec/mongrel2/httprequest_spec.rb:
|
9
|
+
Guard against HTTP requests with a nil body.size.
|
10
|
+
[ac7a50bb284d]
|
11
|
+
|
12
|
+
* lib/mongrel2/connection.rb, spec/mongrel2/connection_spec.rb:
|
13
|
+
Handle recv errors that don't set a ZMQ.error
|
14
|
+
[7650088eeaa1]
|
15
|
+
|
16
|
+
* .gems, .ruby-gemset, .ruby-version, .rvmrc, Rakefile:
|
17
|
+
Bump minimum Ruby version, update deps and build files
|
18
|
+
[39e753039b65]
|
19
|
+
|
20
|
+
* spec/mongrel2/config/directory_spec.rb,
|
21
|
+
spec/mongrel2/config/dsl_spec.rb,
|
22
|
+
spec/mongrel2/config/handler_spec.rb,
|
23
|
+
spec/mongrel2/config/log_spec.rb,
|
24
|
+
spec/mongrel2/config/route_spec.rb,
|
25
|
+
spec/mongrel2/config/server_spec.rb, spec/mongrel2/config_spec.rb,
|
26
|
+
spec/mongrel2/control_spec.rb, spec/mongrel2/handler_spec.rb,
|
27
|
+
spec/mongrel2/httprequest_spec.rb,
|
28
|
+
spec/mongrel2/httpresponse_spec.rb, spec/mongrel2/table_spec.rb,
|
29
|
+
spec/mongrel2/websocket_spec.rb:
|
30
|
+
Update spec logging for newer Loggability versions
|
31
|
+
[cb9adc83077b]
|
32
|
+
|
33
|
+
* lib/mongrel2/config.rb:
|
34
|
+
Make Mongrel2::Config a proper abstract subclass of Sequel::Model.
|
35
|
+
|
36
|
+
diff --git a/lib/mongrel2/connection.rb
|
37
|
+
b/lib/mongrel2/connection.rb
|
38
|
+
--- a/lib/mongrel2/connection.rb +++ b/lib/mongrel2/connection.rb @@
|
39
|
+
-104,7 +104,7 @@ class Mongrel2::Connection self.check_closed
|
40
|
+
|
41
|
+
self.log.debug "Fetching next request (PULL)"
|
42
|
+
- data = self.request_sock.recv or raise( ZMQ.error ) + data =
|
43
|
+
self.request_sock.recv or raise( ZMQ.error || 'unknown error' )
|
44
|
+
self.log.debug " got %d bytes of %s request data" % [ data.bytesize,
|
45
|
+
data.encoding.name ] return data end diff --git
|
46
|
+
a/lib/mongrel2/httprequest.rb b/lib/mongrel2/httprequest.rb
|
47
|
+
--- a/lib/mongrel2/httprequest.rb +++ b/lib/mongrel2/httprequest.rb
|
48
|
+
@@ -109,12 +109,14 @@ class Mongrel2::HTTPRequest < Mongrel2::
|
49
|
+
|
50
|
+
### Return the details to include in the contents of the #inspected
|
51
|
+
object. def inspect_details + body_size = self.body.size || 0 +
|
52
|
+
return %Q{[%s] "%s %s %s" -- %0.2fK body} % [
|
53
|
+
self.headers.x_forwarded_for, self.headers[:method],
|
54
|
+
self.headers.uri, self.headers.version,
|
55
|
+
- (self.body.size / 1024.0), + (body_size / 1024.0), ] end
|
56
|
+
|
57
|
+
diff --git a/spec/mongrel2/config/directory_spec.rb
|
58
|
+
b/spec/mongrel2/config/directory_spec.rb
|
59
|
+
--- a/spec/mongrel2/config/directory_spec.rb +++
|
60
|
+
b/spec/mongrel2/config/directory_spec.rb @@ -14,7 +14,6 @@ require
|
61
|
+
'mongrel2/config' describe Mongrel2::Config::Directory do
|
62
|
+
|
63
|
+
before( :all ) do
|
64
|
+
- setup_logging() setup_config_db() end
|
65
|
+
|
66
|
+
@@ -26,10 +25,6 @@ describe Mongrel2::Config::Directory do ) end
|
67
|
+
|
68
|
+
- after( :all ) do
|
69
|
+
- reset_logging()
|
70
|
+
- end
|
71
|
+
-
|
72
|
+
|
73
|
+
it "is valid if its base, index_file, and default_ctype are all
|
74
|
+
valid" do expect( @dir ).to be_valid() diff --git
|
75
|
+
a/spec/mongrel2/config/dsl_spec.rb
|
76
|
+
b/spec/mongrel2/config/dsl_spec.rb
|
77
|
+
--- a/spec/mongrel2/config/dsl_spec.rb +++
|
78
|
+
b/spec/mongrel2/config/dsl_spec.rb @@ -16,7 +16,6 @@ describe
|
79
|
+
Mongrel2::Config::DSL do include described_class
|
80
|
+
|
81
|
+
before( :all ) do
|
82
|
+
- setup_logging() setup_config_db() end
|
83
|
+
|
84
|
+
@@ -24,10 +23,6 @@ describe Mongrel2::Config::DSL do
|
85
|
+
clean_config_db() end
|
86
|
+
|
87
|
+
- after( :all ) do
|
88
|
+
- reset_logging()
|
89
|
+
- end
|
90
|
+
-
|
91
|
+
|
92
|
+
describe 'servers' do it "can generate a default server config using
|
93
|
+
the 'server' declarative" do diff --git
|
94
|
+
a/spec/mongrel2/config/handler_spec.rb
|
95
|
+
b/spec/mongrel2/config/handler_spec.rb
|
96
|
+
--- a/spec/mongrel2/config/handler_spec.rb +++
|
97
|
+
b/spec/mongrel2/config/handler_spec.rb @@ -14,7 +14,6 @@ require
|
98
|
+
'mongrel2/config' describe Mongrel2::Config::Handler do
|
99
|
+
|
100
|
+
before( :all ) do
|
101
|
+
- setup_logging() setup_config_db() end
|
102
|
+
|
103
|
+
@@ -28,9 +27,7 @@ describe Mongrel2::Config::Handler do ) end
|
104
|
+
|
105
|
+
- after( :all ) do
|
106
|
+
- reset_logging()
|
107
|
+
- end +
|
108
|
+
|
109
|
+
it "is valid if its specs and identities are all valid" do expect(
|
110
|
+
@handler ).to be_valid() diff --git
|
111
|
+
a/spec/mongrel2/config/log_spec.rb
|
112
|
+
b/spec/mongrel2/config/log_spec.rb
|
113
|
+
--- a/spec/mongrel2/config/log_spec.rb +++
|
114
|
+
b/spec/mongrel2/config/log_spec.rb @@ -16,14 +16,9 @@ require
|
115
|
+
'mongrel2/config' describe Mongrel2::Config::Log do
|
116
|
+
|
117
|
+
before( :all ) do
|
118
|
+
- setup_logging() setup_config_db() end
|
119
|
+
|
120
|
+
- after( :all ) do
|
121
|
+
- reset_logging()
|
122
|
+
- end
|
123
|
+
-
|
124
|
+
|
125
|
+
it "has a convenience method for writing to the commit log" do what
|
126
|
+
= 'load etc/mongrel2.conf' diff --git
|
127
|
+
a/spec/mongrel2/config/route_spec.rb
|
128
|
+
b/spec/mongrel2/config/route_spec.rb
|
129
|
+
--- a/spec/mongrel2/config/route_spec.rb +++
|
130
|
+
b/spec/mongrel2/config/route_spec.rb @@ -14,7 +14,6 @@ require
|
131
|
+
'mongrel2/config' describe Mongrel2::Config::Route do
|
132
|
+
|
133
|
+
before( :all ) do
|
134
|
+
- setup_logging() setup_config_db() end
|
135
|
+
|
136
|
+
@@ -22,10 +21,6 @@ describe Mongrel2::Config::Route do @route =
|
137
|
+
Mongrel2::Config::Route.new( :path => '' ) end
|
138
|
+
|
139
|
+
- after( :all ) do
|
140
|
+
- reset_logging()
|
141
|
+
- end
|
142
|
+
-
|
143
|
+
|
144
|
+
it "returns a Mongrel2::Config::Directory if its target_type is
|
145
|
+
'dir'" do dir = Mongrel2::Config::Directory.create( diff --git
|
146
|
+
a/spec/mongrel2/config/server_spec.rb
|
147
|
+
b/spec/mongrel2/config/server_spec.rb
|
148
|
+
--- a/spec/mongrel2/config/server_spec.rb +++
|
149
|
+
b/spec/mongrel2/config/server_spec.rb @@ -14,7 +14,6 @@ require
|
150
|
+
'mongrel2/config' describe Mongrel2::Config::Server do
|
151
|
+
|
152
|
+
before( :all ) do
|
153
|
+
- setup_logging() setup_config_db() end
|
154
|
+
|
155
|
+
@@ -30,10 +29,6 @@ describe Mongrel2::Config::Server do ) end
|
156
|
+
|
157
|
+
- after( :all ) do
|
158
|
+
- reset_logging()
|
159
|
+
- end
|
160
|
+
-
|
161
|
+
|
162
|
+
it "is valid if its access_log, error_log, pid_file, default_host,
|
163
|
+
and port are all valid" do expect( @server ).to be_valid() diff
|
164
|
+
--git a/spec/mongrel2/config_spec.rb b/spec/mongrel2/config_spec.rb
|
165
|
+
--- a/spec/mongrel2/config_spec.rb +++ b/spec/mongrel2/config_spec.rb
|
166
|
+
@@ -13,12 +13,10 @@ require 'mongrel2/config' describe
|
167
|
+
Mongrel2::Config do
|
168
|
+
|
169
|
+
before( :all ) do
|
170
|
+
- setup_logging() setup_config_db() end
|
171
|
+
|
172
|
+
after( :all ) do
|
173
|
+
- reset_logging() File.delete( 'config-spec.sqlite' ) if File.exist?(
|
174
|
+
'config.spec.sqlite' ) end
|
175
|
+
|
176
|
+
diff --git a/spec/mongrel2/control_spec.rb
|
177
|
+
b/spec/mongrel2/control_spec.rb
|
178
|
+
--- a/spec/mongrel2/control_spec.rb +++
|
179
|
+
b/spec/mongrel2/control_spec.rb @@ -13,7 +13,6 @@ require
|
180
|
+
'mongrel2/control' describe Mongrel2::Control do
|
181
|
+
|
182
|
+
before( :all ) do
|
183
|
+
- setup_logging() end
|
184
|
+
|
185
|
+
before( :each ) do @@ -30,7 +29,6 @@ describe Mongrel2::Control do
|
186
|
+
|
187
|
+
after( :all ) do Mongrel2.instance_variable_set( :@zmq_ctx, nil )
|
188
|
+
- reset_logging() end
|
189
|
+
|
190
|
+
diff --git a/spec/mongrel2/handler_spec.rb
|
191
|
+
b/spec/mongrel2/handler_spec.rb
|
192
|
+
--- a/spec/mongrel2/handler_spec.rb +++
|
193
|
+
b/spec/mongrel2/handler_spec.rb @@ -35,14 +35,9 @@ describe
|
194
|
+
Mongrel2::Handler do
|
195
|
+
|
196
|
+
before( :all ) do
|
197
|
+
- setup_logging() setup_config_db() end
|
198
|
+
|
199
|
+
- after( :all ) do
|
200
|
+
- reset_logging()
|
201
|
+
- end
|
202
|
+
-
|
203
|
+
|
204
|
+
# Ensure 0MQ never actually gets called before( :each ) do diff
|
205
|
+
--git a/spec/mongrel2/httprequest_spec.rb
|
206
|
+
b/spec/mongrel2/httprequest_spec.rb
|
207
|
+
--- a/spec/mongrel2/httprequest_spec.rb +++
|
208
|
+
b/spec/mongrel2/httprequest_spec.rb @@ -17,7 +17,6 @@ require
|
209
|
+
'mongrel2/httpresponse' describe Mongrel2::HTTPRequest do
|
210
|
+
|
211
|
+
before( :all ) do
|
212
|
+
- setup_logging() @factory = Mongrel2::RequestFactory.new( route:
|
213
|
+
'/glamour' ) end
|
214
|
+
|
215
|
+
@@ -25,10 +24,6 @@ describe Mongrel2::HTTPRequest do @req =
|
216
|
+
@factory.get( '/glamour/test' ) end
|
217
|
+
|
218
|
+
- after( :all ) do
|
219
|
+
- reset_logging()
|
220
|
+
- end
|
221
|
+
-
|
222
|
+
|
223
|
+
it "can create an HTTPResponse for itself" do result = @req.response
|
224
|
+
diff --git a/spec/mongrel2/httpresponse_spec.rb
|
225
|
+
b/spec/mongrel2/httpresponse_spec.rb
|
226
|
+
--- a/spec/mongrel2/httpresponse_spec.rb +++
|
227
|
+
b/spec/mongrel2/httpresponse_spec.rb @@ -14,18 +14,10 @@ require
|
228
|
+
'mongrel2/httpresponse'
|
229
|
+
|
230
|
+
describe Mongrel2::HTTPResponse do
|
231
|
+
|
232
|
+
- before( :all ) do
|
233
|
+
- setup_logging()
|
234
|
+
- end
|
235
|
+
-
|
236
|
+
before( :each ) do @response = Mongrel2::HTTPResponse.new(
|
237
|
+
TEST_UUID, 299 ) end
|
238
|
+
|
239
|
+
- after( :all ) do
|
240
|
+
- reset_logging()
|
241
|
+
- end
|
242
|
+
-
|
243
|
+
|
244
|
+
it "has a headers table" do expect( @response.headers ).to be_a(
|
245
|
+
Mongrel2::Table ) diff --git a/spec/mongrel2/table_spec.rb
|
246
|
+
b/spec/mongrel2/table_spec.rb
|
247
|
+
--- a/spec/mongrel2/table_spec.rb +++ b/spec/mongrel2/table_spec.rb
|
248
|
+
@@ -12,19 +12,10 @@ require 'mongrel2/table'
|
249
|
+
|
250
|
+
describe Mongrel2::Table do
|
251
|
+
|
252
|
+
-
|
253
|
+
- before( :all ) do
|
254
|
+
- setup_logging()
|
255
|
+
- end
|
256
|
+
-
|
257
|
+
before( :each ) do @table = Mongrel2::Table.new end
|
258
|
+
|
259
|
+
- after( :all ) do
|
260
|
+
- reset_logging()
|
261
|
+
- end
|
262
|
+
-
|
263
|
+
|
264
|
+
|
265
|
+
it "allows setting/fetching case-insensitively" do diff --git
|
266
|
+
a/spec/mongrel2/websocket_spec.rb b/spec/mongrel2/websocket_spec.rb
|
267
|
+
--- a/spec/mongrel2/websocket_spec.rb +++
|
268
|
+
b/spec/mongrel2/websocket_spec.rb @@ -19,13 +19,9 @@ require
|
269
|
+
'mongrel2/websocket' describe Mongrel2::WebSocket do
|
270
|
+
|
271
|
+
before( :all ) do
|
272
|
+
- setup_logging() @factory = Mongrel2::WebSocketFrameFactory.new(
|
273
|
+
route: '/websock' ) end
|
274
|
+
|
275
|
+
- after( :all ) do
|
276
|
+
- reset_logging()
|
277
|
+
- end
|
278
|
+
|
279
|
+
# Data for testing payload of binary frames BINARY_DATA =
|
280
|
+
[8f14a1070996]
|
281
|
+
|
282
|
+
2016-01-25 Michael Granger <ged@FaerieMUD.org>
|
283
|
+
|
284
|
+
* lib/mongrel2/connection.rb, spec/mongrel2/connection_spec.rb:
|
285
|
+
Raise ZMQ::Error on nil return from Connection#recv
|
286
|
+
[1a53994c72a0]
|
287
|
+
|
288
|
+
2016-01-20 Michael Granger <ged@FaerieMUD.org>
|
289
|
+
|
290
|
+
* README.rdoc:
|
291
|
+
Update the copyright years in the README
|
292
|
+
[2e78a59ae16d]
|
293
|
+
|
294
|
+
* .hgtags:
|
295
|
+
Added tag v0.44.0 for changeset 56fc8d5a0a66
|
296
|
+
[b4239188fb4d]
|
297
|
+
|
298
|
+
* .hgsigs:
|
299
|
+
Added signature for changeset 796ca99139a6
|
300
|
+
[56fc8d5a0a66] [v0.44.0]
|
301
|
+
|
302
|
+
* History.rdoc, lib/mongrel2.rb:
|
303
|
+
Bump the minor version, update history.
|
304
|
+
[796ca99139a6]
|
305
|
+
|
1
306
|
2016-01-20 Mahlon E. Smith <mahlon@martini.nu>
|
2
307
|
|
3
308
|
* lib/mongrel2/handler.rb, lib/mongrel2/request.rb, spec/helpers.rb,
|
4
309
|
spec/mongrel2/config/dsl_spec.rb, spec/mongrel2/handler_spec.rb:
|
5
310
|
Ensure that Mongrel2 spool files are removed after the lifetime of a
|
6
311
|
request.
|
7
|
-
[250431675079]
|
312
|
+
[250431675079]
|
8
313
|
|
9
314
|
2015-12-30 Mahlon E. Smith <mahlon@martini.nu>
|
10
315
|
|
data/History.rdoc
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
== v0.45.0 [2016-11-03] Michael Granger <ged@FaerieMUD.org>
|
2
|
+
|
3
|
+
Bugfixes:
|
4
|
+
|
5
|
+
- Guard against HTTP requests with a nil body.size.
|
6
|
+
- Make Mongrel2::Config a proper abstract subclass of Sequel::Model.
|
7
|
+
- Raise ZMQ::Error on nil return from Connection#recv
|
8
|
+
|
9
|
+
|
1
10
|
== v0.44.0 [2016-01-20] Mahlon E. Smith <mahlon@martini.nu>
|
2
11
|
|
3
12
|
Enhancements:
|
data/README.rdoc
CHANGED
@@ -173,7 +173,7 @@ This implementation differs from them in several ways:
|
|
173
173
|
|
174
174
|
== License
|
175
175
|
|
176
|
-
Copyright (c) 2011-
|
176
|
+
Copyright (c) 2011-2016, Michael Granger
|
177
177
|
All rights reserved.
|
178
178
|
|
179
179
|
Redistribution and use in source and binary forms, with or without
|
data/Rakefile
CHANGED
@@ -30,18 +30,18 @@ hoespec = Hoe.spec 'mongrel2' do
|
|
30
30
|
self.dependency 'yajl-ruby', '~> 1.0'
|
31
31
|
self.dependency 'trollop', '~> 2.0'
|
32
32
|
self.dependency 'sysexits', '~> 1.1'
|
33
|
-
self.dependency 'rbczmq',
|
34
|
-
self.dependency 'loggability','~> 0.
|
33
|
+
self.dependency 'rbczmq', '~> 1.7'
|
34
|
+
self.dependency 'loggability', '~> 0.11'
|
35
35
|
self.dependency 'sqlite3', '~> 1.3'
|
36
36
|
self.dependency 'libxml-ruby', '~> 2.7'
|
37
37
|
|
38
|
-
self.dependency 'amalgalite', '~> 1.
|
39
|
-
self.dependency 'configurability', '~> 2.
|
40
|
-
self.dependency 'simplecov', '~> 0.
|
41
|
-
self.dependency 'hoe-deveiate', '~> 0.
|
38
|
+
self.dependency 'amalgalite', '~> 1.5', :developer
|
39
|
+
self.dependency 'configurability', '~> 2.2', :developer
|
40
|
+
self.dependency 'simplecov', '~> 0.12', :developer
|
41
|
+
self.dependency 'hoe-deveiate', '~> 0.8', :developer
|
42
42
|
self.dependency 'rdoc-generator-fivefish', '~> 0', :development
|
43
43
|
|
44
|
-
self.require_ruby_version( '>=2.
|
44
|
+
self.require_ruby_version( '>=2.2.0' )
|
45
45
|
self.hg_sign_tags = true if self.respond_to?( :hg_sign_tags= )
|
46
46
|
self.check_history_on_release = true if self.respond_to?( :check_history_on_release= )
|
47
47
|
self.rdoc_locations << "deveiate:/usr/local/www/public/code/#{remote_rdoc_dir}"
|
data/lib/mongrel2.rb
CHANGED
@@ -22,13 +22,13 @@ module Mongrel2
|
|
22
22
|
log_as :mongrel2
|
23
23
|
|
24
24
|
|
25
|
-
abort "\n\n>>> Mongrel2 requires Ruby
|
25
|
+
abort "\n\n>>> Mongrel2 requires Ruby 2.2 or later. <<<\n\n" if RUBY_VERSION < '2.2.0'
|
26
26
|
|
27
27
|
# Library version constant
|
28
|
-
VERSION = '0.
|
28
|
+
VERSION = '0.45.0'
|
29
29
|
|
30
30
|
# Version-control revision constant
|
31
|
-
REVISION = %q$Revision:
|
31
|
+
REVISION = %q$Revision: 0ef122fb3bb8 $
|
32
32
|
|
33
33
|
|
34
34
|
require 'mongrel2/constants'
|
data/lib/mongrel2/config.rb
CHANGED
@@ -32,6 +32,12 @@ require 'mongrel2/constants'
|
|
32
32
|
|
33
33
|
module Mongrel2
|
34
34
|
|
35
|
+
# Initialize the Cozy::Postgres::Model class as an abstract model class (i.e.,
|
36
|
+
# without a default dataset). This prevents it from looking for a table called
|
37
|
+
# `models`, and makes inheriting it more straightforward.
|
38
|
+
# Thanks to Jeremy Evans for the suggestion.
|
39
|
+
Config = Class.new( Sequel::Model )
|
40
|
+
|
35
41
|
# The base Mongrel2 database-backed configuration class. It's a subclass of Sequel::Model, so
|
36
42
|
# you'll first need to be familiar with Sequel (http://sequel.rubyforge.org/) and
|
37
43
|
# especially its Sequel::Model ORM.
|
@@ -45,7 +51,7 @@ module Mongrel2
|
|
45
51
|
# == References
|
46
52
|
# * http://mongrel2.org/static/book-finalch4.html#x6-260003.4
|
47
53
|
#
|
48
|
-
class Config
|
54
|
+
class Config
|
49
55
|
extend Loggability
|
50
56
|
include Mongrel2::Constants
|
51
57
|
|
@@ -129,12 +135,14 @@ module Mongrel2
|
|
129
135
|
end
|
130
136
|
|
131
137
|
if self == Mongrel2::Config
|
132
|
-
self.log.debug "Resetting database connection for %d config classes to: %p" %
|
133
|
-
[ self.descendents.length, newdb ]
|
134
138
|
newdb.logger = Loggability[ Mongrel2 ].proxy_for( newdb )
|
135
139
|
newdb.sql_log_level = :debug
|
136
140
|
|
137
|
-
self.descendents.each
|
141
|
+
self.descendents.each do |subclass|
|
142
|
+
self.log.debug "Resetting database connection for %p to: %p" %
|
143
|
+
[ subclass, newdb ]
|
144
|
+
subclass.db = newdb
|
145
|
+
end
|
138
146
|
end
|
139
147
|
end
|
140
148
|
|
data/lib/mongrel2/connection.rb
CHANGED
@@ -104,7 +104,7 @@ class Mongrel2::Connection
|
|
104
104
|
self.check_closed
|
105
105
|
|
106
106
|
self.log.debug "Fetching next request (PULL)"
|
107
|
-
data = self.request_sock.recv
|
107
|
+
data = self.request_sock.recv or raise( ZMQ.error || 'unknown error' )
|
108
108
|
self.log.debug " got %d bytes of %s request data" % [ data.bytesize, data.encoding.name ]
|
109
109
|
return data
|
110
110
|
end
|
data/lib/mongrel2/httprequest.rb
CHANGED
@@ -109,12 +109,14 @@ class Mongrel2::HTTPRequest < Mongrel2::Request
|
|
109
109
|
|
110
110
|
### Return the details to include in the contents of the #inspected object.
|
111
111
|
def inspect_details
|
112
|
+
body_size = self.body.size || 0
|
113
|
+
|
112
114
|
return %Q{[%s] "%s %s %s" -- %0.2fK body} % [
|
113
115
|
self.headers.x_forwarded_for,
|
114
116
|
self.headers[:method],
|
115
117
|
self.headers.uri,
|
116
118
|
self.headers.version,
|
117
|
-
(
|
119
|
+
(body_size / 1024.0),
|
118
120
|
]
|
119
121
|
end
|
120
122
|
|
@@ -14,7 +14,6 @@ require 'mongrel2/config'
|
|
14
14
|
describe Mongrel2::Config::Directory do
|
15
15
|
|
16
16
|
before( :all ) do
|
17
|
-
setup_logging()
|
18
17
|
setup_config_db()
|
19
18
|
end
|
20
19
|
|
@@ -26,10 +25,6 @@ describe Mongrel2::Config::Directory do
|
|
26
25
|
)
|
27
26
|
end
|
28
27
|
|
29
|
-
after( :all ) do
|
30
|
-
reset_logging()
|
31
|
-
end
|
32
|
-
|
33
28
|
|
34
29
|
it "is valid if its base, index_file, and default_ctype are all valid" do
|
35
30
|
expect( @dir ).to be_valid()
|
@@ -16,7 +16,6 @@ describe Mongrel2::Config::DSL do
|
|
16
16
|
include described_class
|
17
17
|
|
18
18
|
before( :all ) do
|
19
|
-
setup_logging()
|
20
19
|
setup_config_db()
|
21
20
|
end
|
22
21
|
|
@@ -24,10 +23,6 @@ describe Mongrel2::Config::DSL do
|
|
24
23
|
clean_config_db()
|
25
24
|
end
|
26
25
|
|
27
|
-
after( :all ) do
|
28
|
-
reset_logging()
|
29
|
-
end
|
30
|
-
|
31
26
|
|
32
27
|
describe 'servers' do
|
33
28
|
it "can generate a default server config using the 'server' declarative" do
|
@@ -14,7 +14,6 @@ require 'mongrel2/config'
|
|
14
14
|
describe Mongrel2::Config::Handler do
|
15
15
|
|
16
16
|
before( :all ) do
|
17
|
-
setup_logging()
|
18
17
|
setup_config_db()
|
19
18
|
end
|
20
19
|
|
@@ -28,9 +27,7 @@ describe Mongrel2::Config::Handler do
|
|
28
27
|
)
|
29
28
|
end
|
30
29
|
|
31
|
-
|
32
|
-
reset_logging()
|
33
|
-
end
|
30
|
+
|
34
31
|
|
35
32
|
it "is valid if its specs and identities are all valid" do
|
36
33
|
expect( @handler ).to be_valid()
|
@@ -16,14 +16,9 @@ require 'mongrel2/config'
|
|
16
16
|
describe Mongrel2::Config::Log do
|
17
17
|
|
18
18
|
before( :all ) do
|
19
|
-
setup_logging()
|
20
19
|
setup_config_db()
|
21
20
|
end
|
22
21
|
|
23
|
-
after( :all ) do
|
24
|
-
reset_logging()
|
25
|
-
end
|
26
|
-
|
27
22
|
|
28
23
|
it "has a convenience method for writing to the commit log" do
|
29
24
|
what = 'load etc/mongrel2.conf'
|
@@ -14,7 +14,6 @@ require 'mongrel2/config'
|
|
14
14
|
describe Mongrel2::Config::Route do
|
15
15
|
|
16
16
|
before( :all ) do
|
17
|
-
setup_logging()
|
18
17
|
setup_config_db()
|
19
18
|
end
|
20
19
|
|
@@ -22,10 +21,6 @@ describe Mongrel2::Config::Route do
|
|
22
21
|
@route = Mongrel2::Config::Route.new( :path => '' )
|
23
22
|
end
|
24
23
|
|
25
|
-
after( :all ) do
|
26
|
-
reset_logging()
|
27
|
-
end
|
28
|
-
|
29
24
|
|
30
25
|
it "returns a Mongrel2::Config::Directory if its target_type is 'dir'" do
|
31
26
|
dir = Mongrel2::Config::Directory.create(
|
@@ -14,7 +14,6 @@ require 'mongrel2/config'
|
|
14
14
|
describe Mongrel2::Config::Server do
|
15
15
|
|
16
16
|
before( :all ) do
|
17
|
-
setup_logging()
|
18
17
|
setup_config_db()
|
19
18
|
end
|
20
19
|
|
@@ -30,10 +29,6 @@ describe Mongrel2::Config::Server do
|
|
30
29
|
)
|
31
30
|
end
|
32
31
|
|
33
|
-
after( :all ) do
|
34
|
-
reset_logging()
|
35
|
-
end
|
36
|
-
|
37
32
|
|
38
33
|
it "is valid if its access_log, error_log, pid_file, default_host, and port are all valid" do
|
39
34
|
expect( @server ).to be_valid()
|
@@ -13,12 +13,10 @@ require 'mongrel2/config'
|
|
13
13
|
describe Mongrel2::Config do
|
14
14
|
|
15
15
|
before( :all ) do
|
16
|
-
setup_logging()
|
17
16
|
setup_config_db()
|
18
17
|
end
|
19
18
|
|
20
19
|
after( :all ) do
|
21
|
-
reset_logging()
|
22
20
|
File.delete( 'config-spec.sqlite' ) if File.exist?( 'config.spec.sqlite' )
|
23
21
|
end
|
24
22
|
|
@@ -14,7 +14,6 @@ describe Mongrel2::Connection do
|
|
14
14
|
include Mongrel2::Config::DSL
|
15
15
|
|
16
16
|
before( :all ) do
|
17
|
-
setup_logging()
|
18
17
|
end
|
19
18
|
|
20
19
|
# Ensure 0MQ never actually gets called
|
@@ -29,10 +28,6 @@ describe Mongrel2::Connection do
|
|
29
28
|
Mongrel2.instance_variable_set( :@zmq_ctx, nil )
|
30
29
|
end
|
31
30
|
|
32
|
-
after( :all ) do
|
33
|
-
reset_logging()
|
34
|
-
end
|
35
|
-
|
36
31
|
|
37
32
|
it "doesn't connect to the endpoints when it's created" do
|
38
33
|
expect( @conn.instance_variable_get( :@request_sock ) ).to be_nil()
|
@@ -124,6 +119,22 @@ describe Mongrel2::Connection do
|
|
124
119
|
expect( @conn.receive ).to be_a( Mongrel2::Request )
|
125
120
|
end
|
126
121
|
|
122
|
+
it "handles a socket error while receiving" do
|
123
|
+
expect( @request_sock ).to receive( :recv ).and_return( nil )
|
124
|
+
expect( ZMQ ).to receive( :error ).and_return( ZMQ::Error.new("something bad happened") )
|
125
|
+
expect {
|
126
|
+
@conn.receive
|
127
|
+
}.to raise_error( ZMQ::Error, 'something bad happened' )
|
128
|
+
end
|
129
|
+
|
130
|
+
it "handles a socket error that doesn't set an error message while receiving" do
|
131
|
+
expect( @request_sock ).to receive( :recv ).and_return( nil )
|
132
|
+
expect( ZMQ ).to receive( :error ).and_return( nil )
|
133
|
+
expect {
|
134
|
+
@conn.receive
|
135
|
+
}.to raise_error( RuntimeError, 'unknown error' )
|
136
|
+
end
|
137
|
+
|
127
138
|
it "can write raw response messages with a TNetString header onto the response_sock" do
|
128
139
|
expect( @response_sock ).to receive( :send ).with( "#{TEST_UUID} 1:8, the data" )
|
129
140
|
@conn.send( TEST_UUID, 8, "the data" )
|
@@ -13,7 +13,6 @@ require 'mongrel2/control'
|
|
13
13
|
describe Mongrel2::Control do
|
14
14
|
|
15
15
|
before( :all ) do
|
16
|
-
setup_logging()
|
17
16
|
end
|
18
17
|
|
19
18
|
before( :each ) do
|
@@ -30,7 +29,6 @@ describe Mongrel2::Control do
|
|
30
29
|
|
31
30
|
after( :all ) do
|
32
31
|
Mongrel2.instance_variable_set( :@zmq_ctx, nil )
|
33
|
-
reset_logging()
|
34
32
|
end
|
35
33
|
|
36
34
|
|
@@ -17,7 +17,6 @@ require 'mongrel2/httpresponse'
|
|
17
17
|
describe Mongrel2::HTTPRequest do
|
18
18
|
|
19
19
|
before( :all ) do
|
20
|
-
setup_logging()
|
21
20
|
@factory = Mongrel2::RequestFactory.new( route: '/glamour' )
|
22
21
|
end
|
23
22
|
|
@@ -25,10 +24,6 @@ describe Mongrel2::HTTPRequest do
|
|
25
24
|
@req = @factory.get( '/glamour/test' )
|
26
25
|
end
|
27
26
|
|
28
|
-
after( :all ) do
|
29
|
-
reset_logging()
|
30
|
-
end
|
31
|
-
|
32
27
|
|
33
28
|
it "can create an HTTPResponse for itself" do
|
34
29
|
result = @req.response
|
@@ -83,6 +78,13 @@ describe Mongrel2::HTTPRequest do
|
|
83
78
|
expect( @req ).to be_secure()
|
84
79
|
end
|
85
80
|
|
81
|
+
it "doesn't error when inspecting a bodiless instance" do
|
82
|
+
# I don't remember what circumstances this is guarding against, so this is a bit
|
83
|
+
# artificial
|
84
|
+
@req.body = double( "sizeless body", size: nil )
|
85
|
+
expect( @req.inspect ).to match( /0.00K body/ )
|
86
|
+
end
|
87
|
+
|
86
88
|
|
87
89
|
describe "header convenience methods" do
|
88
90
|
|
@@ -14,18 +14,10 @@ require 'mongrel2/httpresponse'
|
|
14
14
|
|
15
15
|
describe Mongrel2::HTTPResponse do
|
16
16
|
|
17
|
-
before( :all ) do
|
18
|
-
setup_logging()
|
19
|
-
end
|
20
|
-
|
21
17
|
before( :each ) do
|
22
18
|
@response = Mongrel2::HTTPResponse.new( TEST_UUID, 299 )
|
23
19
|
end
|
24
20
|
|
25
|
-
after( :all ) do
|
26
|
-
reset_logging()
|
27
|
-
end
|
28
|
-
|
29
21
|
|
30
22
|
it "has a headers table" do
|
31
23
|
expect( @response.headers ).to be_a( Mongrel2::Table )
|
data/spec/mongrel2/table_spec.rb
CHANGED
@@ -12,19 +12,10 @@ require 'mongrel2/table'
|
|
12
12
|
|
13
13
|
describe Mongrel2::Table do
|
14
14
|
|
15
|
-
|
16
|
-
before( :all ) do
|
17
|
-
setup_logging()
|
18
|
-
end
|
19
|
-
|
20
15
|
before( :each ) do
|
21
16
|
@table = Mongrel2::Table.new
|
22
17
|
end
|
23
18
|
|
24
|
-
after( :all ) do
|
25
|
-
reset_logging()
|
26
|
-
end
|
27
|
-
|
28
19
|
|
29
20
|
|
30
21
|
it "allows setting/fetching case-insensitively" do
|
@@ -19,13 +19,9 @@ require 'mongrel2/websocket'
|
|
19
19
|
describe Mongrel2::WebSocket do
|
20
20
|
|
21
21
|
before( :all ) do
|
22
|
-
setup_logging()
|
23
22
|
@factory = Mongrel2::WebSocketFrameFactory.new( route: '/websock' )
|
24
23
|
end
|
25
24
|
|
26
|
-
after( :all ) do
|
27
|
-
reset_logging()
|
28
|
-
end
|
29
25
|
|
30
26
|
# Data for testing payload of binary frames
|
31
27
|
BINARY_DATA =
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongrel2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.45.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Granger
|
@@ -10,27 +10,32 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
13
|
+
MIIEbDCCAtSgAwIBAgIBATANBgkqhkiG9w0BAQsFADA+MQwwCgYDVQQDDANnZWQx
|
14
14
|
GTAXBgoJkiaJk/IsZAEZFglGYWVyaWVNVUQxEzARBgoJkiaJk/IsZAEZFgNvcmcw
|
15
|
-
|
15
|
+
HhcNMTYwODIwMTgxNzQyWhcNMTcwODIwMTgxNzQyWjA+MQwwCgYDVQQDDANnZWQx
|
16
16
|
GTAXBgoJkiaJk/IsZAEZFglGYWVyaWVNVUQxEzARBgoJkiaJk/IsZAEZFgNvcmcw
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
17
|
+
ggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC/JWGRHO+USzR97vXjkFgt
|
18
|
+
83qeNf2KHkcvrRTSnR64i6um/ziin0I0oX23H7VYrDJC9A/uoUa5nGRJS5Zw/+wW
|
19
|
+
ENcvWVZS4iUzi4dsYJGY6yEOsXh2CcF46+QevV8iE+UmbkU75V7Dy1JCaUOyizEt
|
20
|
+
TH5UHsOtUU7k9TYARt/TgYZKuaoAMZZd5qyVqhF1vV+7/Qzmp89NGflXf2xYP26a
|
21
|
+
4MAX2qqKX/FKXqmFO+AGsbwYTEds1mksBF3fGsFgsQWxftG8GfZQ9+Cyu2+l1eOw
|
22
|
+
cZ+lPcg834G9DrqW2zhqUoLr1MTly4pqxYGb7XoDhoR7dd1kFE2a067+DzWC/ADt
|
23
|
+
+QkcqWUm5oh1fN0eqr7NsZlVJDulFgdiiYPQiIN7UNsii4Wc9aZqBoGcYfBeQNPZ
|
24
|
+
soo/6za/bWajOKUmDhpqvaiRv9EDpVLzuj53uDoukMMwxCMfgb04+ckQ0t2G7wqc
|
25
|
+
/D+K9JW9DDs3Yjgv9k4h7YMhW5gftosd+NkNC/+Y2CkCAwEAAaN1MHMwCQYDVR0T
|
26
|
+
BAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFHKN/nkRusdqCJEuq3lgB3fJvyTg
|
27
|
+
MBwGA1UdEQQVMBOBEWdlZEBGYWVyaWVNVUQub3JnMBwGA1UdEgQVMBOBEWdlZEBG
|
28
|
+
YWVyaWVNVUQub3JnMA0GCSqGSIb3DQEBCwUAA4IBgQAPJzKiT0zBU7kpqe0aS2qb
|
29
|
+
FI0PJ4y5I8buU4IZGUD5NEt/N7pZNfOyBxkrZkXhS44Fp+xwBH5ebLbq/WY78Bqd
|
30
|
+
db0z6ZgW4LMYMpWFfbXsRbd9TU2f52L8oMAhxOvF7Of5qJMVWuFQ8FPagk2iHrdH
|
31
|
+
inYLQagqAF6goWTXgAJCdPd6SNeeSNqA6vlY7CV1Jh5kfNJJ6xu/CVij1GzCLu/5
|
32
|
+
DMOr26DBv+qLJRRC/2h34uX71q5QgeOyxvMg+7V3u/Q06DXyQ2VgeeqiwDFFpEH0
|
33
|
+
PFkdPO6ZqbTRcLfNH7mFgCBJjsfSjJrn0sPBlYyOXgCoByfZnZyrIMH/UY+lgQqS
|
34
|
+
6Von1VDsfQm0eJh5zYZD64ZF86phSR7mUX3mXItwH04HrZwkWpvgd871DZVR3i1n
|
35
|
+
w8aNA5re5+Rt/Vvjxj5AcEnZnZiz5x959NaddQocX32Z1unHw44pzRNUur1GInfW
|
36
|
+
p4vpx2kUSFSAGjtCbDGTNV2AH8w9OU4xEmNz8c5lyoA=
|
32
37
|
-----END CERTIFICATE-----
|
33
|
-
date: 2016-
|
38
|
+
date: 2016-11-04 00:00:00.000000000 Z
|
34
39
|
dependencies:
|
35
40
|
- !ruby/object:Gem::Dependency
|
36
41
|
name: sequel
|
@@ -122,14 +127,14 @@ dependencies:
|
|
122
127
|
requirements:
|
123
128
|
- - "~>"
|
124
129
|
- !ruby/object:Gem::Version
|
125
|
-
version: '0.
|
130
|
+
version: '0.11'
|
126
131
|
type: :runtime
|
127
132
|
prerelease: false
|
128
133
|
version_requirements: !ruby/object:Gem::Requirement
|
129
134
|
requirements:
|
130
135
|
- - "~>"
|
131
136
|
- !ruby/object:Gem::Version
|
132
|
-
version: '0.
|
137
|
+
version: '0.11'
|
133
138
|
- !ruby/object:Gem::Dependency
|
134
139
|
name: sqlite3
|
135
140
|
requirement: !ruby/object:Gem::Requirement
|
@@ -178,14 +183,14 @@ dependencies:
|
|
178
183
|
requirements:
|
179
184
|
- - "~>"
|
180
185
|
- !ruby/object:Gem::Version
|
181
|
-
version: '0.
|
186
|
+
version: '0.8'
|
182
187
|
type: :development
|
183
188
|
prerelease: false
|
184
189
|
version_requirements: !ruby/object:Gem::Requirement
|
185
190
|
requirements:
|
186
191
|
- - "~>"
|
187
192
|
- !ruby/object:Gem::Version
|
188
|
-
version: '0.
|
193
|
+
version: '0.8'
|
189
194
|
- !ruby/object:Gem::Dependency
|
190
195
|
name: hoe-highline
|
191
196
|
requirement: !ruby/object:Gem::Requirement
|
@@ -201,89 +206,89 @@ dependencies:
|
|
201
206
|
- !ruby/object:Gem::Version
|
202
207
|
version: '0.2'
|
203
208
|
- !ruby/object:Gem::Dependency
|
204
|
-
name:
|
209
|
+
name: amalgalite
|
205
210
|
requirement: !ruby/object:Gem::Requirement
|
206
211
|
requirements:
|
207
212
|
- - "~>"
|
208
213
|
- !ruby/object:Gem::Version
|
209
|
-
version: '
|
214
|
+
version: '1.5'
|
210
215
|
type: :development
|
211
216
|
prerelease: false
|
212
217
|
version_requirements: !ruby/object:Gem::Requirement
|
213
218
|
requirements:
|
214
219
|
- - "~>"
|
215
220
|
- !ruby/object:Gem::Version
|
216
|
-
version: '
|
221
|
+
version: '1.5'
|
217
222
|
- !ruby/object:Gem::Dependency
|
218
|
-
name:
|
223
|
+
name: configurability
|
219
224
|
requirement: !ruby/object:Gem::Requirement
|
220
225
|
requirements:
|
221
226
|
- - "~>"
|
222
227
|
- !ruby/object:Gem::Version
|
223
|
-
version: '
|
228
|
+
version: '2.2'
|
224
229
|
type: :development
|
225
230
|
prerelease: false
|
226
231
|
version_requirements: !ruby/object:Gem::Requirement
|
227
232
|
requirements:
|
228
233
|
- - "~>"
|
229
234
|
- !ruby/object:Gem::Version
|
230
|
-
version: '
|
235
|
+
version: '2.2'
|
231
236
|
- !ruby/object:Gem::Dependency
|
232
|
-
name:
|
237
|
+
name: simplecov
|
233
238
|
requirement: !ruby/object:Gem::Requirement
|
234
239
|
requirements:
|
235
240
|
- - "~>"
|
236
241
|
- !ruby/object:Gem::Version
|
237
|
-
version: '
|
242
|
+
version: '0.12'
|
238
243
|
type: :development
|
239
244
|
prerelease: false
|
240
245
|
version_requirements: !ruby/object:Gem::Requirement
|
241
246
|
requirements:
|
242
247
|
- - "~>"
|
243
248
|
- !ruby/object:Gem::Version
|
244
|
-
version: '
|
249
|
+
version: '0.12'
|
245
250
|
- !ruby/object:Gem::Dependency
|
246
|
-
name:
|
251
|
+
name: rdoc-generator-fivefish
|
247
252
|
requirement: !ruby/object:Gem::Requirement
|
248
253
|
requirements:
|
249
254
|
- - "~>"
|
250
255
|
- !ruby/object:Gem::Version
|
251
|
-
version: '0
|
256
|
+
version: '0'
|
252
257
|
type: :development
|
253
258
|
prerelease: false
|
254
259
|
version_requirements: !ruby/object:Gem::Requirement
|
255
260
|
requirements:
|
256
261
|
- - "~>"
|
257
262
|
- !ruby/object:Gem::Version
|
258
|
-
version: '0
|
263
|
+
version: '0'
|
259
264
|
- !ruby/object:Gem::Dependency
|
260
|
-
name: rdoc
|
265
|
+
name: rdoc
|
261
266
|
requirement: !ruby/object:Gem::Requirement
|
262
267
|
requirements:
|
263
268
|
- - "~>"
|
264
269
|
- !ruby/object:Gem::Version
|
265
|
-
version: '0'
|
270
|
+
version: '4.0'
|
266
271
|
type: :development
|
267
272
|
prerelease: false
|
268
273
|
version_requirements: !ruby/object:Gem::Requirement
|
269
274
|
requirements:
|
270
275
|
- - "~>"
|
271
276
|
- !ruby/object:Gem::Version
|
272
|
-
version: '0'
|
277
|
+
version: '4.0'
|
273
278
|
- !ruby/object:Gem::Dependency
|
274
279
|
name: hoe
|
275
280
|
requirement: !ruby/object:Gem::Requirement
|
276
281
|
requirements:
|
277
282
|
- - "~>"
|
278
283
|
- !ruby/object:Gem::Version
|
279
|
-
version: '3.
|
284
|
+
version: '3.15'
|
280
285
|
type: :development
|
281
286
|
prerelease: false
|
282
287
|
version_requirements: !ruby/object:Gem::Requirement
|
283
288
|
requirements:
|
284
289
|
- - "~>"
|
285
290
|
- !ruby/object:Gem::Version
|
286
|
-
version: '3.
|
291
|
+
version: '3.15'
|
287
292
|
description: |-
|
288
293
|
Ruby-Mongrel2 is a complete Ruby connector for Mongrel2[http://mongrel2.org/].
|
289
294
|
|
@@ -402,7 +407,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
402
407
|
requirements:
|
403
408
|
- - ">="
|
404
409
|
- !ruby/object:Gem::Version
|
405
|
-
version: 2.
|
410
|
+
version: 2.2.0
|
406
411
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
407
412
|
requirements:
|
408
413
|
- - ">="
|
@@ -410,7 +415,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
410
415
|
version: '0'
|
411
416
|
requirements: []
|
412
417
|
rubyforge_project:
|
413
|
-
rubygems_version: 2.
|
418
|
+
rubygems_version: 2.5.1
|
414
419
|
signing_key:
|
415
420
|
specification_version: 4
|
416
421
|
summary: Ruby-Mongrel2 is a complete Ruby connector for Mongrel2[http://mongrel2.org/]
|
metadata.gz.sig
CHANGED
Binary file
|