mongrel2 0.44.0 → 0.45.0
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.
- 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
|