mongrel2 0.52.1 → 0.52.2

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.
@@ -33,21 +33,25 @@ describe Mongrel2::Response do
33
33
  expect( response.body.read ).to eq( 'the body' )
34
34
  end
35
35
 
36
+
36
37
  it "stringifies to its body contents" do
37
38
  response = Mongrel2::Response.new( TEST_UUID, 8, 'the body' )
38
39
  expect( response.to_s ).to eq( 'the body' )
39
40
  end
40
41
 
42
+
41
43
  it "can be streamed in chunks" do
42
44
  response = Mongrel2::Response.new( TEST_UUID, 8, 'the body' )
43
45
  expect {|b| response.each_chunk(&b) }.to yield_with_args( 'the body' )
44
46
  end
45
47
 
48
+
46
49
  it "can generate an enumerator for its body stream" do
47
50
  response = Mongrel2::Response.new( TEST_UUID, 8, "the body" )
48
51
  expect( response.each_chunk ).to be_a( Enumerator )
49
52
  end
50
53
 
54
+
51
55
  it "wraps stringifiable bodies set via the #body= accessor in a StringIO" do
52
56
  response = Mongrel2::Response.new( TEST_UUID, 8 )
53
57
  response.body = 'a stringioed body'
@@ -55,6 +59,7 @@ describe Mongrel2::Response do
55
59
  expect( response.body.string ).to eq( 'a stringioed body' )
56
60
  end
57
61
 
62
+
58
63
  it "doesn't try to wrap non-stringfiable bodies in a StringIO" do
59
64
  response = Mongrel2::Response.new( TEST_UUID, 8 )
60
65
  testbody = Object.new
@@ -73,18 +78,21 @@ describe Mongrel2::Response do
73
78
  expect( response.body.read ).to eq( '' )
74
79
  end
75
80
 
81
+
76
82
  it "supports the append operator to append objects to the body IO" do
77
83
  response << 'some body stuff' << ' and some more body stuff'
78
84
  response.body.rewind
79
85
  expect( response.body.read ).to eq( 'some body stuff and some more body stuff' )
80
86
  end
81
87
 
88
+
82
89
  it "supports #puts for appending objects to the body IO separated by EOL" do
83
90
  response.puts( "some body stuff\n", " and some more body stuff\n\n", :and_a_symbol )
84
91
  response.body.rewind
85
92
  expect( response.body.read ).to eq( "some body stuff\n and some more body stuff\n\nand_a_symbol\n" )
86
93
  end
87
94
 
95
+
88
96
  it "is not an extended reply" do
89
97
  expect( response ).to_not be_extended_reply
90
98
  end
@@ -17,7 +17,6 @@ describe Mongrel2::Table do
17
17
  end
18
18
 
19
19
 
20
-
21
20
  it "allows setting/fetching case-insensitively" do
22
21
 
23
22
  @table['Accept'] = :accept
@@ -156,6 +155,7 @@ describe Mongrel2::Table do
156
155
  it "can yield an Enumerator for its header iterator" do
157
156
  expect( @table.each_header ).to be_a( Enumerator )
158
157
  end
158
+
159
159
  end
160
160
 
161
161
 
@@ -46,16 +46,19 @@ describe Mongrel2::WebSocket do
46
46
  expect( Mongrel2::Request.request_types[:WEBSOCKET_HANDSHAKE] ).to eq( Mongrel2::WebSocket::ClientHandshake )
47
47
  end
48
48
 
49
+
49
50
  it "knows what subprotocols were requested" do
50
51
  handshake = @factory.handshake( '/websock', 'echo', 'superecho' )
51
52
  expect( handshake.protocols ).to eq( ['echo', 'superecho'] )
52
53
  end
53
54
 
55
+
54
56
  it "doesn't error if no subprotocols were requested" do
55
57
  handshake = @factory.handshake( '/websock' )
56
58
  expect( handshake.protocols ).to eq( [] )
57
59
  end
58
60
 
61
+
59
62
  it "can create a response WebSocket::ServerHandshake for itself" do
60
63
  handshake = @factory.handshake( '/websock' )
61
64
  result = handshake.response
@@ -73,6 +76,7 @@ describe Mongrel2::WebSocket do
73
76
  expect( result.body.read ).to eq( '' )
74
77
  end
75
78
 
79
+
76
80
  it "can create a response WebSocket::ServerHandshake with a valid sub-protocol for itself" do
77
81
  handshake = @factory.handshake( '/websock', 'echo', 'superecho' )
78
82
  result = handshake.response( :superecho )
@@ -91,6 +95,7 @@ describe Mongrel2::WebSocket do
91
95
  expect( result.body.read ).to eq( '' )
92
96
  end
93
97
 
98
+
94
99
  it "raises an exception if the specified protocol is not one of the client's advertised ones" do
95
100
  handshake = @factory.handshake( '/websock', 'echo', 'superecho' )
96
101
 
@@ -99,6 +104,7 @@ describe Mongrel2::WebSocket do
99
104
  }.to raise_error( Mongrel2::WebSocket::HandshakeError, /map_updates/i )
100
105
  end
101
106
 
107
+
102
108
  it "has a socket identifier" do
103
109
  handshake = @factory.handshake( '/websock', 'echo', 'superecho' )
104
110
  expect( handshake.socket_id ).to eq( "#{handshake.sender_id}:#{handshake.conn_id}" )
@@ -114,85 +120,103 @@ describe Mongrel2::WebSocket do
114
120
  expect( Mongrel2::Request.request_types[:WEBSOCKET] ).to eq( Mongrel2::WebSocket::Frame )
115
121
  end
116
122
 
123
+
117
124
  it "knows that its FIN flag is not set if its FLAG header doesn't include that bit" do
118
125
  frame = @factory.text( '/websock', 'Hello!' )
119
126
  frame.flags ^= ( frame.flags & Mongrel2::WebSocket::FIN_FLAG )
120
127
  expect( frame ).to_not be_fin()
121
128
  end
122
129
 
130
+
123
131
  it "knows that its FIN flag is set if its FLAG header includes that bit" do
124
132
  frame = @factory.text( '/websock', 'Hello!', :fin )
125
133
  expect( frame ).to be_fin()
126
134
  end
127
135
 
136
+
128
137
  it "can unset its FIN flag" do
129
138
  frame = @factory.text( '/websock', 'Hello!', :fin )
130
139
  frame.fin = false
131
140
  expect( frame ).to_not be_fin()
132
141
  end
133
142
 
143
+
134
144
  it "can set its FIN flag" do
135
145
  frame = @factory.text( '/websock', 'Hello!' )
136
146
  frame.fin = true
137
147
  expect( frame ).to be_fin()
138
148
  end
139
149
 
150
+
140
151
  it "knows that its opcode is continuation if its opcode is 0x0" do
141
152
  expect( @factory.continuation( '/websock' ).opcode ).to eq( :continuation )
142
153
  end
143
154
 
155
+
144
156
  it "knows that is opcode is 'text' if its opcode is 0x1" do
145
157
  expect( @factory.text( '/websock', 'Hello!' ).opcode ).to eq( :text )
146
158
  end
147
159
 
160
+
148
161
  it "knows that is opcode is 'binary' if its opcode is 0x2" do
149
162
  expect( @factory.binary( '/websock', 'Hello!' ).opcode ).to eq( :binary )
150
163
  end
151
164
 
165
+
152
166
  it "knows that is opcode is 'close' if its opcode is 0x8" do
153
167
  expect( @factory.close( '/websock' ).opcode ).to eq( :close )
154
168
  end
155
169
 
170
+
156
171
  it "knows that is opcode is 'ping' if its opcode is 0x9" do
157
172
  expect( @factory.ping( '/websock' ).opcode ).to eq( :ping )
158
173
  end
159
174
 
175
+
160
176
  it "knows that is opcode is 'pong' if its opcode is 0xA" do
161
177
  expect( @factory.pong( '/websock' ).opcode ).to eq( :pong )
162
178
  end
163
179
 
180
+
164
181
  it "knows that its opcode is one of the reserved ones if it's 0x3" do
165
182
  expect( @factory.create( '/websocket', '', 0x3 ).opcode ).to eq( :reserved )
166
183
  end
167
184
 
185
+
168
186
  it "knows that its opcode is one of the reserved ones if it's 0x4" do
169
187
  expect( @factory.create( '/websocket', '', 0x4 ).opcode ).to eq( :reserved )
170
188
  end
171
189
 
190
+
172
191
  it "knows that its opcode is one of the reserved ones if it's 0xB" do
173
192
  expect( @factory.create( '/websocket', '', 0xB ).opcode ).to eq( :reserved )
174
193
  end
175
194
 
195
+
176
196
  it "knows that its opcode is one of the reserved ones if it's 0xD" do
177
197
  expect( @factory.create( '/websocket', '', 0xD ).opcode ).to eq( :reserved )
178
198
  end
179
199
 
200
+
180
201
  it "knows that its opcode is one of the reserved ones if it's 0xF" do
181
202
  expect( @factory.create( '/websocket', '', 0xF ).opcode ).to eq( :reserved )
182
203
  end
183
204
 
205
+
184
206
  it "allows its opcode to be set Symbolically" do
185
207
  frame = @factory.text( '/websocket', 'data' )
186
208
  frame.opcode = :binary
187
209
  expect( frame.numeric_opcode ).to eq( OPCODE[:binary] )
188
210
  end
189
211
 
212
+
190
213
  it "allows its opcode to be set Numerically" do
191
214
  frame = @factory.binary( '/websocket', 'data' )
192
215
  frame.opcode = :text
193
216
  expect( frame.numeric_opcode ).to eq( OPCODE[:text] )
194
217
  end
195
218
 
219
+
196
220
  it "allows its opcode to be set to one of the reserved opcodes Numerically" do
197
221
  frame = @factory.binary( '/websocket', 'data' )
198
222
  frame.opcode = 0xC
@@ -200,34 +224,42 @@ describe Mongrel2::WebSocket do
200
224
  expect( frame.numeric_opcode ).to eq( 0xC )
201
225
  end
202
226
 
227
+
203
228
  it "knows that its RSV1 flag is set if its FLAG header includes that bit" do
204
229
  expect( @factory.ping( '/websock', 'test', :rsv1 ) ).to be_rsv1()
205
230
  end
206
231
 
232
+
207
233
  it "knows that its RSV2 flag is set if its FLAG header includes that bit" do
208
234
  expect( @factory.ping( '/websock', 'test', :rsv2 ) ).to be_rsv2()
209
235
  end
210
236
 
237
+
211
238
  it "knows that its RSV3 flag is set if its FLAG header includes that bit" do
212
239
  expect( @factory.ping( '/websock', 'test', :rsv3 ) ).to be_rsv3()
213
240
  end
214
241
 
242
+
215
243
  it "knows that one of its RSV flags is set if its FLAG header includes RSV1" do
216
244
  expect( @factory.ping( '/websock', 'test', :rsv1 ) ).to have_rsv_flags()
217
245
  end
218
246
 
247
+
219
248
  it "knows that one of its RSV flags is set if its FLAG header includes RSV2" do
220
249
  expect( @factory.ping( '/websock', 'test', :rsv2 ) ).to have_rsv_flags()
221
250
  end
222
251
 
252
+
223
253
  it "knows that one of its RSV flags is set if its FLAG header includes RSV3" do
224
254
  expect( @factory.ping( '/websock', 'test', :rsv3 ) ).to have_rsv_flags()
225
255
  end
226
256
 
257
+
227
258
  it "knows that no RSV flags are set if its FLAG header doesn't have any RSV bits" do
228
259
  expect( @factory.ping( '/websock', 'test' ) ).to_not have_rsv_flags()
229
260
  end
230
261
 
262
+
231
263
  it "can create a response WebSocket::Frame for itself" do
232
264
  frame = @factory.text( '/websock', "Hi, here's a message!", :fin )
233
265
 
@@ -242,6 +274,7 @@ describe Mongrel2::WebSocket do
242
274
  expect( result.payload.read ).to eq( '' )
243
275
  end
244
276
 
277
+
245
278
  it "creates PONG responses with the same payload for PING frames" do
246
279
  frame = @factory.ping( '/websock', "WOO" )
247
280
 
@@ -256,6 +289,7 @@ describe Mongrel2::WebSocket do
256
289
  expect( result.payload.read ).to eq( 'WOO' )
257
290
  end
258
291
 
292
+
259
293
  it "allows header flags and/or opcode to be specified when creating a response" do
260
294
  frame = @factory.text( '/websock', "some bad data" )
261
295
 
@@ -271,6 +305,7 @@ describe Mongrel2::WebSocket do
271
305
  expect( result.payload.read ).to eq( '' )
272
306
  end
273
307
 
308
+
274
309
  it "allows reserved opcodes to be specified when creating a response" do
275
310
  frame = @factory.text( '/websock', "some bad data" )
276
311
 
@@ -286,6 +321,7 @@ describe Mongrel2::WebSocket do
286
321
  expect( result.payload.read ).to eq( '' )
287
322
  end
288
323
 
324
+
289
325
  it "can be streamed in chunks instead of read all at once" do
290
326
  data = BINARY_DATA * 256
291
327
  binary = @factory.binary( '/websock', data, :fin )
@@ -297,6 +333,7 @@ describe Mongrel2::WebSocket do
297
333
  ])
298
334
  end
299
335
 
336
+
300
337
  it "has a socket identifier" do
301
338
  frame = @factory.text( '/websock', "data" )
302
339
  expect( frame.socket_id ).to eq( "#{frame.sender_id}:#{frame.conn_id}" )
@@ -311,6 +348,7 @@ describe Mongrel2::WebSocket do
311
348
  @frame = @factory.text( '/websock', '', :fin )
312
349
  end
313
350
 
351
+
314
352
  it "automatically transcodes its payload to UTF8" do
315
353
  text = "Стрелке!".encode( Encoding::KOI8_U )
316
354
  @frame << text
@@ -325,24 +363,29 @@ describe Mongrel2::WebSocket do
325
363
 
326
364
 
327
365
  describe "a WebSocket binary frame" do
366
+
328
367
  before( :each ) do
329
368
  @frame = @factory.binary( '/websock', BINARY_DATA, :fin )
330
369
  end
331
370
 
371
+
332
372
  it "doesn't try to transcode non-UTF8 data" do
333
373
  # 4-byte header
334
374
  expect( @frame.bytes.to_a[ 4, 16 ] ).
335
375
  to eq([ 0x07, 0xbd, 0xb3, 0xfe, 0x87, 0xeb, 0xa9, 0x0e, 0x6e, 0x32, 0x71,
336
376
  0xce, 0x85, 0xaf, 0x29, 0x88 ])
337
377
  end
378
+
338
379
  end
339
380
 
340
381
 
341
382
  describe "a WebSocket close frame" do
383
+
342
384
  before( :each ) do
343
385
  @frame = @factory.close( '/websock' )
344
386
  end
345
387
 
388
+
346
389
  it "has convenience methods for setting its payload via integer status code" do
347
390
  @frame.set_status( CLOSE_BAD_DATA )
348
391
  @frame.payload.rewind
@@ -354,6 +397,7 @@ describe Mongrel2::WebSocket do
354
397
 
355
398
 
356
399
  describe "WebSocket control frames" do
400
+
357
401
  before( :each ) do
358
402
  @frame = @factory.close( '/websock', "1002 Protocol error" )
359
403
  end
@@ -366,6 +410,7 @@ describe Mongrel2::WebSocket do
366
410
  }.to raise_error( Mongrel2::WebSocket::FrameError, /cannot exceed 125 bytes/i )
367
411
  end
368
412
 
413
+
369
414
  it "raises an exception if it's fragmented" do
370
415
  @frame.fin = false
371
416
  expect {
@@ -384,6 +429,7 @@ describe Mongrel2::WebSocket do
384
429
  expect( raw_response.encoding ).to eq( Encoding::BINARY )
385
430
  end
386
431
 
432
+
387
433
  it "generates both parts of a fragmented unmasked text message correctly" do
388
434
  first = @factory.text( '/websock', 'Hel' )
389
435
  last = @factory.continuation( '/websock', 'lo', :fin )
@@ -392,6 +438,7 @@ describe Mongrel2::WebSocket do
392
438
  expect( last.bytes.to_a ).to eq( [ 0x80, 0x02, 0x6c, 0x6f ] )
393
439
  end
394
440
 
441
+
395
442
  # The RFC's example is a masked response, but we're never a client, so never
396
443
  # generate masked payloads.
397
444
  it "generates a unmasked Ping request and (un)masked Ping response correctly" do
@@ -411,6 +458,7 @@ describe Mongrel2::WebSocket do
411
458
  expect( binary.to_s[4..-1] ).to eq( BINARY_DATA )
412
459
  end
413
460
 
461
+
414
462
  it "generates a 64KiB binary message in a single unmasked frame correctly" do
415
463
  data = BINARY_DATA * 256
416
464
 
@@ -11,6 +11,7 @@ require 'mongrel2'
11
11
  describe Mongrel2 do
12
12
 
13
13
  describe "version methods" do
14
+
14
15
  it "returns a version string if asked" do
15
16
  expect( Mongrel2.version_string ).to match( /\w+ [\d.]+/ )
16
17
  end
@@ -19,6 +20,7 @@ describe Mongrel2 do
19
20
  it "returns a version string with a build number if asked" do
20
21
  expect( Mongrel2.version_string(true) ).to match( /\w+ [\d.]+ \(build [[:xdigit:]]+\)/ )
21
22
  end
23
+
22
24
  end
23
25
 
24
26
  end
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.52.1
4
+ version: 0.52.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -10,32 +10,31 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- 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
- 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
- HhcNMTcwOTI3MDAzMDQ0WhcNMTgwOTI3MDAzMDQ0WjA+MQwwCgYDVQQDDANnZWQx
16
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- /D+K9JW9DDs3Yjgv9k4h7YMhW5gftosd+NkNC/+Y2CkCAwEAAaN1MHMwCQYDVR0T
26
- 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
- MBwGA1UdEQQVMBOBEWdlZEBGYWVyaWVNVUQub3JnMBwGA1UdEgQVMBOBEWdlZEBG
28
- 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
- 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
- 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
- DuEzbEMfaOUYjU9RuB48vr4q8yRft0ww+3jq5iwNkrX1buL2pwBbyvgms6D/BV41
32
- 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
- 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
- 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
- X0qdrKi+2aZZ0NGuFj9AItBsVmAvkBGIpX4TEKQp5haEbPpmaqO5nIIhV26PXmyT
36
- OMKv6pWsoS81vw5KAGBmfX8nht/Py90DQrbRvakATGI=
13
+ MIIENDCCApygAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdnZWQv
14
+ REM9RmFlcmllTVVEL0RDPW9yZzAeFw0xODExMjAxODI5NTlaFw0xOTExMjAxODI5
15
+ NTlaMCIxIDAeBgNVBAMMF2dlZC9EQz1GYWVyaWVNVUQvREM9b3JnMIIBojANBgkq
16
+ hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAvyVhkRzvlEs0fe7145BYLfN6njX9ih5H
17
+ L60U0p0euIurpv84op9CNKF9tx+1WKwyQvQP7qFGuZxkSUuWcP/sFhDXL1lWUuIl
18
+ M4uHbGCRmOshDrF4dgnBeOvkHr1fIhPlJm5FO+Vew8tSQmlDsosxLUx+VB7DrVFO
19
+ 5PU2AEbf04GGSrmqADGWXeaslaoRdb1fu/0M5qfPTRn5V39sWD9umuDAF9qqil/x
20
+ Sl6phTvgBrG8GExHbNZpLARd3xrBYLEFsX7RvBn2UPfgsrtvpdXjsHGfpT3IPN+B
21
+ vQ66lts4alKC69TE5cuKasWBm+16A4aEe3XdZBRNmtOu/g81gvwA7fkJHKllJuaI
22
+ dXzdHqq+zbGZVSQ7pRYHYomD0IiDe1DbIouFnPWmagaBnGHwXkDT2bKKP+s2v21m
23
+ ozilJg4aar2okb/RA6VS87o+d7g6LpDDMMQjH4G9OPnJENLdhu8KnPw/ivSVvQw7
24
+ N2I4L/ZOIe2DIVuYH7aLHfjZDQv/mNgpAgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYD
25
+ VR0PBAQDAgSwMB0GA1UdDgQWBBRyjf55EbrHagiRLqt5YAd3yb8k4DAcBgNVHREE
26
+ FTATgRFnZWRARmFlcmllTVVELm9yZzAcBgNVHRIEFTATgRFnZWRARmFlcmllTVVE
27
+ Lm9yZzANBgkqhkiG9w0BAQsFAAOCAYEAP9Ffkvg4e8CjIWi8SykQ8oJSS8jbmbgF
28
+ abke3vXWLG6V9kFiObuJd5wZRBluJANu7bEtjgc3fFaGVP2XxVdCpVjNbmMDg4Qp
29
+ ovvczP53X6pQP2RSZgxF6Lblvy8y11RziUTVRG/Z2aJHsElo6gI7vQznE/OSDrhC
30
+ gEhr8uaIUt7D+HZWRbU0+MkKPpL5uMqaFuJbqXEvSwPTuUuYkDfNfsjQO7ruWBac
31
+ bxHCrvpZ6Tijc0nrlyXi6gPOCLeaqhau2xFnlvKgELwsGYSoKBJyDwqtQ5kwrOlU
32
+ tkSyLrfZ+RZcH535Hyvif7ZxB0v5OxXXoec+N2vrUsEUMRDL9dg4/WFdN8hIOixF
33
+ 3IPKpZ1ho0Ya5q7yhygtBK9/NBFHw+nbJjcltfPDBXleRe8u73gnQo8AZIhStYSP
34
+ v4qqqa27Bs468d6SoPxjSm8a2mM9HZ4OdWhq4tFsbTeXDVquCfi64OTEaTt2xQdR
35
+ JnC4lpJfCP6aCXa5h2XAQfPSH636cQap
37
36
  -----END CERTIFICATE-----
38
- date: 2018-07-23 00:00:00.000000000 Z
37
+ date: 2019-04-24 00:00:00.000000000 Z
39
38
  dependencies:
40
39
  - !ruby/object:Gem::Dependency
41
40
  name: cztop
@@ -197,14 +196,14 @@ dependencies:
197
196
  requirements:
198
197
  - - "~>"
199
198
  - !ruby/object:Gem::Version
200
- version: '0.9'
199
+ version: '0.10'
201
200
  type: :development
202
201
  prerelease: false
203
202
  version_requirements: !ruby/object:Gem::Requirement
204
203
  requirements:
205
204
  - - "~>"
206
205
  - !ruby/object:Gem::Version
207
- version: '0.9'
206
+ version: '0.10'
208
207
  - !ruby/object:Gem::Dependency
209
208
  name: hoe-highline
210
209
  requirement: !ruby/object:Gem::Requirement
@@ -279,30 +278,36 @@ dependencies:
279
278
  name: rdoc
280
279
  requirement: !ruby/object:Gem::Requirement
281
280
  requirements:
282
- - - "~>"
281
+ - - ">="
283
282
  - !ruby/object:Gem::Version
284
283
  version: '4.0'
284
+ - - "<"
285
+ - !ruby/object:Gem::Version
286
+ version: '7'
285
287
  type: :development
286
288
  prerelease: false
287
289
  version_requirements: !ruby/object:Gem::Requirement
288
290
  requirements:
289
- - - "~>"
291
+ - - ">="
290
292
  - !ruby/object:Gem::Version
291
293
  version: '4.0'
294
+ - - "<"
295
+ - !ruby/object:Gem::Version
296
+ version: '7'
292
297
  - !ruby/object:Gem::Dependency
293
298
  name: hoe
294
299
  requirement: !ruby/object:Gem::Requirement
295
300
  requirements:
296
301
  - - "~>"
297
302
  - !ruby/object:Gem::Version
298
- version: '3.16'
303
+ version: '3.17'
299
304
  type: :development
300
305
  prerelease: false
301
306
  version_requirements: !ruby/object:Gem::Requirement
302
307
  requirements:
303
308
  - - "~>"
304
309
  - !ruby/object:Gem::Version
305
- version: '3.16'
310
+ version: '3.17'
306
311
  description: |-
307
312
  Ruby-Mongrel2 is a complete Ruby connector for Mongrel2[http://mongrel2.org/].
308
313
 
@@ -412,8 +417,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
412
417
  - !ruby/object:Gem::Version
413
418
  version: '0'
414
419
  requirements: []
415
- rubyforge_project:
416
- rubygems_version: 2.7.7
420
+ rubygems_version: 3.0.3
417
421
  signing_key:
418
422
  specification_version: 4
419
423
  summary: Ruby-Mongrel2 is a complete Ruby connector for Mongrel2[http://mongrel2.org/]