strelka 0.7.0 → 0.8.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 +1 -3
- data/History.rdoc +19 -0
- data/Rakefile +6 -5
- data/lib/strelka.rb +2 -2
- data/lib/strelka/app.rb +8 -21
- data/lib/strelka/app/auth.rb +1 -1
- data/lib/strelka/app/restresources.rb +72 -20
- data/lib/strelka/app/sessions.rb +6 -4
- data/lib/strelka/authprovider.rb +1 -1
- data/lib/strelka/cookie.rb +2 -1
- data/lib/strelka/httprequest.rb +47 -43
- data/lib/strelka/httprequest/acceptparams.rb +3 -3
- data/lib/strelka/httprequest/negotiation.rb +4 -0
- data/lib/strelka/mixins.rb +27 -28
- data/lib/strelka/multipartparser.rb +1 -3
- data/lib/strelka/plugins.rb +1 -2
- data/lib/strelka/router.rb +2 -2
- data/lib/strelka/session.rb +3 -2
- data/lib/strelka/session/db.rb +1 -0
- data/spec/strelka/app/auth_spec.rb +48 -48
- data/spec/strelka/app/filters_spec.rb +8 -8
- data/spec/strelka/app/parameters_spec.rb +1 -1
- data/spec/strelka/app/restresources_spec.rb +69 -35
- data/spec/strelka/app/routing_spec.rb +1 -1
- data/spec/strelka/app/templating_spec.rb +1 -1
- data/spec/strelka/authprovider/basic_spec.rb +1 -1
- data/spec/strelka/authprovider/hostaccess_spec.rb +3 -3
- data/spec/strelka/cookie_spec.rb +6 -5
- data/spec/strelka/cookieset_spec.rb +1 -1
- data/spec/strelka/discovery_spec.rb +2 -2
- data/spec/strelka/httprequest/acceptparams_spec.rb +16 -16
- data/spec/strelka/httprequest/negotiation_spec.rb +73 -67
- data/spec/strelka/httprequest/session_spec.rb +2 -2
- data/spec/strelka/httprequest_spec.rb +38 -6
- data/spec/strelka/httpresponse/session_spec.rb +3 -3
- data/spec/strelka/mixins_spec.rb +3 -3
- data/spec/strelka/multipartparser_spec.rb +2 -2
- data/spec/strelka/paramvalidator_spec.rb +22 -22
- data/spec/strelka/plugins_spec.rb +1 -1
- data/spec/strelka/session/default_spec.rb +4 -4
- data/spec/strelka/websocketserver/routing_spec.rb +1 -1
- metadata +29 -15
- metadata.gz.sig +0 -0
@@ -107,12 +107,12 @@ describe Strelka::HTTPRequest::Session, "-extended request" do
|
|
107
107
|
end
|
108
108
|
|
109
109
|
it "knows when its session hasn't been loaded" do
|
110
|
-
expect( @req.session_loaded? ).to
|
110
|
+
expect( @req.session_loaded? ).to be_falsey()
|
111
111
|
end
|
112
112
|
|
113
113
|
it "knows when its session has been loaded" do
|
114
114
|
@req.session # Load it
|
115
|
-
expect( @req.session_loaded? ).to
|
115
|
+
expect( @req.session_loaded? ).to be_truthy()
|
116
116
|
end
|
117
117
|
|
118
118
|
end
|
@@ -192,9 +192,11 @@ describe Strelka::HTTPRequest do
|
|
192
192
|
})
|
193
193
|
end
|
194
194
|
|
195
|
-
it "
|
195
|
+
it "responds with a 400 (BAD_REQUEST) for a malformed query string" do
|
196
196
|
req = @request_factory.get( '/directory/path?foo' )
|
197
|
-
expect
|
197
|
+
expect {
|
198
|
+
req.params
|
199
|
+
}.to finish_with( HTTP::BAD_REQUEST, /malformed/i )
|
198
200
|
end
|
199
201
|
end
|
200
202
|
|
@@ -247,7 +249,7 @@ describe Strelka::HTTPRequest do
|
|
247
249
|
|
248
250
|
expect {
|
249
251
|
@req.params
|
250
|
-
}.to finish_with( HTTP::BAD_REQUEST, /
|
252
|
+
}.to finish_with( HTTP::BAD_REQUEST, /content type/i )
|
251
253
|
end
|
252
254
|
end
|
253
255
|
|
@@ -302,6 +304,14 @@ describe Strelka::HTTPRequest do
|
|
302
304
|
'mirror' => 'sequel',
|
303
305
|
})
|
304
306
|
end
|
307
|
+
|
308
|
+
it "responds with a 400 (BAD_REQUEST) for malformed parameters" do
|
309
|
+
@req.body = '<? skrip_kiddie_stuff ?>'
|
310
|
+
expect {
|
311
|
+
@req.params
|
312
|
+
}.to finish_with( HTTP::BAD_REQUEST, /malformed/i )
|
313
|
+
end
|
314
|
+
|
305
315
|
end
|
306
316
|
|
307
317
|
context "a POST request with a 'multipart/form-data' body" do
|
@@ -350,6 +360,13 @@ describe Strelka::HTTPRequest do
|
|
350
360
|
expect( @req.params[:foo] ).to eq( data )
|
351
361
|
end
|
352
362
|
|
363
|
+
it "responds with a 400 (BAD_REQUEST) for malformed JSON body" do
|
364
|
+
@req.body = '<? skrip_kiddie_stuff ?>'
|
365
|
+
expect {
|
366
|
+
@req.params
|
367
|
+
}.to finish_with( HTTP::BAD_REQUEST, /malformed/i )
|
368
|
+
end
|
369
|
+
|
353
370
|
end
|
354
371
|
|
355
372
|
context "a POST request with a 'text/x-yaml' body" do
|
@@ -360,7 +377,7 @@ describe Strelka::HTTPRequest do
|
|
360
377
|
|
361
378
|
it "returns a params hash in which all values are nil for an empty body" do
|
362
379
|
@req.body = ''
|
363
|
-
expect( @req.params[:profile] ).to
|
380
|
+
expect( @req.params[:profile] ).to be_falsey
|
364
381
|
end
|
365
382
|
|
366
383
|
it "has the YAML data as the params if it has a body with YAML in it" do
|
@@ -403,6 +420,13 @@ describe Strelka::HTTPRequest do
|
|
403
420
|
expect( @req.params ).to eq( {} )
|
404
421
|
end
|
405
422
|
|
423
|
+
it "responds with a 400 (BAD_REQUEST) for malformed YAML body" do
|
424
|
+
@req.body = "---\npork:\nwoo\nhooooooooo\n\n"
|
425
|
+
expect {
|
426
|
+
@req.params
|
427
|
+
}.to finish_with( HTTP::BAD_REQUEST, /malformed/i )
|
428
|
+
end
|
429
|
+
|
406
430
|
end
|
407
431
|
|
408
432
|
end
|
@@ -417,18 +441,26 @@ describe Strelka::HTTPRequest do
|
|
417
441
|
|
418
442
|
it "parses a single cookie into a cookieset with the cookie in it" do
|
419
443
|
@req.header.cookie = 'foom=chuckUfarly'
|
420
|
-
expect( @req.cookies ).to
|
444
|
+
expect( @req.cookies.size ).to eq( 1 )
|
421
445
|
expect( @req.cookies['foom'].value ).to eq( 'chuckUfarly' )
|
422
446
|
end
|
423
447
|
|
424
448
|
it "parses multiple cookies into a cookieset with multiple cookies in it" do
|
425
449
|
@req.header.cookie = 'foom=chuckUfarly; glarn=hotchinfalcheck'
|
426
450
|
|
427
|
-
expect( @req.cookies ).to
|
451
|
+
expect( @req.cookies.size ).to eq( 2 )
|
428
452
|
expect( @req.cookies['foom'].value ).to eq( 'chuckUfarly' )
|
429
453
|
expect( @req.cookies['glarn'].value ).to eq( 'hotchinfalcheck' )
|
430
454
|
end
|
431
455
|
|
456
|
+
it "responds with a 400 (BAD_REQUEST) response for malformed cookies" do
|
457
|
+
@req.header.cookie = 'pork'
|
458
|
+
|
459
|
+
expect {
|
460
|
+
@req.cookies
|
461
|
+
}.to finish_with( HTTP::BAD_REQUEST, /malformed/i )
|
462
|
+
end
|
463
|
+
|
432
464
|
end
|
433
465
|
|
434
466
|
end
|
@@ -122,16 +122,16 @@ describe Strelka::HTTPResponse::Session, "-extended response" do
|
|
122
122
|
|
123
123
|
it "knows that its session has been loaded if it has one" do
|
124
124
|
@res.session
|
125
|
-
expect( @res.session_loaded? ).to
|
125
|
+
expect( @res.session_loaded? ).to be_truthy()
|
126
126
|
end
|
127
127
|
|
128
128
|
it "knows that its session has been loaded if its request has one" do
|
129
129
|
@res.request.session
|
130
|
-
expect( @res.session_loaded? ).to
|
130
|
+
expect( @res.session_loaded? ).to be_truthy()
|
131
131
|
end
|
132
132
|
|
133
133
|
it "knows that its session hasn't been loaded if neither its request not itself has one" do
|
134
|
-
expect( @res.session_loaded? ).to
|
134
|
+
expect( @res.session_loaded? ).to be_falsey()
|
135
135
|
end
|
136
136
|
|
137
137
|
it "saves the session via itself if it was loaded" do
|
data/spec/strelka/mixins_spec.rb
CHANGED
@@ -19,8 +19,8 @@ describe Strelka, "mixins" do
|
|
19
19
|
describe Strelka::AbstractClass do
|
20
20
|
|
21
21
|
context "mixed into a class" do
|
22
|
-
it "will cause the
|
23
|
-
testclass = Class.new {
|
22
|
+
it "will cause the extended class to hide its ::new method" do
|
23
|
+
testclass = Class.new { extend Strelka::AbstractClass }
|
24
24
|
|
25
25
|
expect {
|
26
26
|
testclass.new
|
@@ -34,7 +34,7 @@ describe Strelka, "mixins" do
|
|
34
34
|
|
35
35
|
before(:each) do
|
36
36
|
testclass = Class.new {
|
37
|
-
|
37
|
+
extend Strelka::AbstractClass
|
38
38
|
pure_virtual :test_method
|
39
39
|
}
|
40
40
|
subclass = Class.new( testclass )
|
@@ -77,7 +77,7 @@ describe Strelka::MultipartParser do
|
|
77
77
|
|
78
78
|
params = parser.parse
|
79
79
|
|
80
|
-
expect( params ).to
|
80
|
+
expect( params.size ).to eq( 5 )
|
81
81
|
expect( params.keys ).to include( 'x-livejournal-entry' )
|
82
82
|
expect( params['velour-fog'] ).to match( /Sweet, sweet canday/i )
|
83
83
|
end
|
@@ -121,7 +121,7 @@ describe Strelka::MultipartParser do
|
|
121
121
|
params = parser.parse
|
122
122
|
|
123
123
|
expect( params['pork'] ).to be_an_instance_of( Array )
|
124
|
-
expect( params['pork'] ).to
|
124
|
+
expect( params['pork'].size ).to eq( 2 )
|
125
125
|
expect( params['pork'] ).to include( 'zoot' )
|
126
126
|
expect( params['pork'] ).to include( 'fornk' )
|
127
127
|
|
@@ -55,7 +55,7 @@ describe Strelka::ParamValidator do
|
|
55
55
|
@validator.validate( 'blorp' => 'true' )
|
56
56
|
expect( @validator[ :blorp ] ).to be_nil
|
57
57
|
@validator.add( :blorp, :boolean )
|
58
|
-
expect( @validator[ :blorp ] ).to
|
58
|
+
expect( @validator[ :blorp ] ).to be_truthy
|
59
59
|
end
|
60
60
|
|
61
61
|
it "ignores identical duplicate constraints" do
|
@@ -148,7 +148,7 @@ describe Strelka::ParamValidator do
|
|
148
148
|
@validator.validate( 'number' => tainted_one )
|
149
149
|
|
150
150
|
expect( @validator[:number] ).to eq( "1" )
|
151
|
-
expect( @validator[:number].tainted? ).to
|
151
|
+
expect( @validator[:number].tainted? ).to be_falsey()
|
152
152
|
end
|
153
153
|
|
154
154
|
it "knows the names of fields that were required but missing from the parameters" do
|
@@ -158,7 +158,7 @@ describe Strelka::ParamValidator do
|
|
158
158
|
expect( @validator ).to have_errors()
|
159
159
|
expect( @validator ).to_not be_okay()
|
160
160
|
|
161
|
-
expect( @validator.missing ).to
|
161
|
+
expect( @validator.missing.size ).to eq( 1 )
|
162
162
|
expect( @validator.missing ).to eq( ['id'] )
|
163
163
|
end
|
164
164
|
|
@@ -171,7 +171,7 @@ describe Strelka::ParamValidator do
|
|
171
171
|
|
172
172
|
expect( @validator.invalid ).to be_empty
|
173
173
|
|
174
|
-
expect( @validator.missing ).to
|
174
|
+
expect( @validator.missing.size ).to eq( 1 )
|
175
175
|
expect( @validator.missing ).to eq( ['id'] )
|
176
176
|
end
|
177
177
|
|
@@ -182,7 +182,7 @@ describe Strelka::ParamValidator do
|
|
182
182
|
expect( @validator ).to have_errors()
|
183
183
|
expect( @validator ).to_not be_okay()
|
184
184
|
|
185
|
-
expect( @validator.invalid ).to
|
185
|
+
expect( @validator.invalid.size ).to eq( 1 )
|
186
186
|
expect( @validator.invalid.keys ).to eq( ['number'] )
|
187
187
|
end
|
188
188
|
|
@@ -205,7 +205,7 @@ describe Strelka::ParamValidator do
|
|
205
205
|
expect( @validator ).to have_errors()
|
206
206
|
expect( @validator ).to_not be_okay()
|
207
207
|
|
208
|
-
expect( @validator.error_fields ).to
|
208
|
+
expect( @validator.error_fields.size ).to eq( 2 )
|
209
209
|
expect( @validator.error_fields ).to include('number')
|
210
210
|
expect( @validator.error_fields ).to include('id')
|
211
211
|
end
|
@@ -250,7 +250,7 @@ describe Strelka::ParamValidator do
|
|
250
250
|
@validator.add( :id, /^(\w{20})$/, :required )
|
251
251
|
@validator.validate( 'number' => 'rhinoceros', 'unknown' => "1" )
|
252
252
|
|
253
|
-
expect( @validator.error_messages ).to
|
253
|
+
expect( @validator.error_messages.size ).to eq( 2 )
|
254
254
|
expect( @validator.error_messages ).to include("Missing value for 'Id'")
|
255
255
|
expect( @validator.error_messages ).to include("Invalid value for 'Number'")
|
256
256
|
end
|
@@ -260,7 +260,7 @@ describe Strelka::ParamValidator do
|
|
260
260
|
@validator.add( :id, /^(\w{20})$/, :required )
|
261
261
|
@validator.validate( 'number' => 'rhinoceros', 'unknown' => "1" )
|
262
262
|
|
263
|
-
expect( @validator.error_messages(true) ).to
|
263
|
+
expect( @validator.error_messages(true).size ).to eq( 3 )
|
264
264
|
expect( @validator.error_messages(true) ).to include("Missing value for 'Id'")
|
265
265
|
expect( @validator.error_messages(true) ).to include("Invalid value for 'Number'")
|
266
266
|
expect( @validator.error_messages(true) ).to include("Unknown parameter 'Unknown'")
|
@@ -271,7 +271,7 @@ describe Strelka::ParamValidator do
|
|
271
271
|
@validator.add( :id, /^(\w{20})$/, "Test Name", :required )
|
272
272
|
@validator.validate( 'number' => 'rhinoceros', 'unknown' => "1" )
|
273
273
|
|
274
|
-
expect( @validator.error_messages ).to
|
274
|
+
expect( @validator.error_messages.size ).to eq( 2 )
|
275
275
|
expect( @validator.error_messages ).to include("Missing value for 'Test Name'")
|
276
276
|
expect( @validator.error_messages ).to include("Invalid value for 'Numeral'")
|
277
277
|
end
|
@@ -286,8 +286,8 @@ describe Strelka::ParamValidator do
|
|
286
286
|
}
|
287
287
|
@validator.validate( 'number' => 'rhinoceros', 'unknown' => "1" )
|
288
288
|
|
289
|
-
expect( @validator.descriptions ).to
|
290
|
-
expect( @validator.error_messages ).to
|
289
|
+
expect( @validator.descriptions.size ).to eq( 2 )
|
290
|
+
expect( @validator.error_messages.size ).to eq( 2 )
|
291
291
|
expect( @validator.error_messages ).to include("Missing value for 'Test Name'")
|
292
292
|
expect( @validator.error_messages ).to include("Invalid value for 'Numeral'")
|
293
293
|
end
|
@@ -486,7 +486,7 @@ describe Strelka::ParamValidator do
|
|
486
486
|
expect( @validator ).to be_okay()
|
487
487
|
expect( @validator ).to_not have_errors()
|
488
488
|
|
489
|
-
expect( @validator[:enabled] ).to
|
489
|
+
expect( @validator[:enabled] ).to be_truthy()
|
490
490
|
end
|
491
491
|
|
492
492
|
it "accepts the value 't'" do
|
@@ -495,7 +495,7 @@ describe Strelka::ParamValidator do
|
|
495
495
|
expect( @validator ).to be_okay()
|
496
496
|
expect( @validator ).to_not have_errors()
|
497
497
|
|
498
|
-
expect( @validator[:enabled] ).to
|
498
|
+
expect( @validator[:enabled] ).to be_truthy()
|
499
499
|
end
|
500
500
|
|
501
501
|
it "accepts the value 'yes'" do
|
@@ -504,7 +504,7 @@ describe Strelka::ParamValidator do
|
|
504
504
|
expect( @validator ).to be_okay()
|
505
505
|
expect( @validator ).to_not have_errors()
|
506
506
|
|
507
|
-
expect( @validator[:enabled] ).to
|
507
|
+
expect( @validator[:enabled] ).to be_truthy()
|
508
508
|
end
|
509
509
|
|
510
510
|
it "accepts the value 'y'" do
|
@@ -513,7 +513,7 @@ describe Strelka::ParamValidator do
|
|
513
513
|
expect( @validator ).to be_okay()
|
514
514
|
expect( @validator ).to_not have_errors()
|
515
515
|
|
516
|
-
expect( @validator[:enabled] ).to
|
516
|
+
expect( @validator[:enabled] ).to be_truthy()
|
517
517
|
end
|
518
518
|
|
519
519
|
it "accepts the value '1'" do
|
@@ -522,7 +522,7 @@ describe Strelka::ParamValidator do
|
|
522
522
|
expect( @validator ).to be_okay()
|
523
523
|
expect( @validator ).to_not have_errors()
|
524
524
|
|
525
|
-
expect( @validator[:enabled] ).to
|
525
|
+
expect( @validator[:enabled] ).to be_truthy()
|
526
526
|
end
|
527
527
|
|
528
528
|
it "accepts the string 'false'" do
|
@@ -531,7 +531,7 @@ describe Strelka::ParamValidator do
|
|
531
531
|
expect( @validator ).to be_okay()
|
532
532
|
expect( @validator ).to_not have_errors()
|
533
533
|
|
534
|
-
expect( @validator[:enabled] ).to
|
534
|
+
expect( @validator[:enabled] ).to be_falsey()
|
535
535
|
end
|
536
536
|
|
537
537
|
it "accepts the literal false value" do
|
@@ -540,7 +540,7 @@ describe Strelka::ParamValidator do
|
|
540
540
|
expect( @validator ).to be_okay()
|
541
541
|
expect( @validator ).to_not have_errors()
|
542
542
|
|
543
|
-
expect( @validator[:enabled] ).to
|
543
|
+
expect( @validator[:enabled] ).to be_falsey()
|
544
544
|
end
|
545
545
|
|
546
546
|
it "accepts the value 'f'" do
|
@@ -549,7 +549,7 @@ describe Strelka::ParamValidator do
|
|
549
549
|
expect( @validator ).to be_okay()
|
550
550
|
expect( @validator ).to_not have_errors()
|
551
551
|
|
552
|
-
expect( @validator[:enabled] ).to
|
552
|
+
expect( @validator[:enabled] ).to be_falsey()
|
553
553
|
end
|
554
554
|
|
555
555
|
it "accepts the value 'no'" do
|
@@ -558,7 +558,7 @@ describe Strelka::ParamValidator do
|
|
558
558
|
expect( @validator ).to be_okay()
|
559
559
|
expect( @validator ).to_not have_errors()
|
560
560
|
|
561
|
-
expect( @validator[:enabled] ).to
|
561
|
+
expect( @validator[:enabled] ).to be_falsey()
|
562
562
|
end
|
563
563
|
|
564
564
|
it "accepts the value 'n'" do
|
@@ -567,7 +567,7 @@ describe Strelka::ParamValidator do
|
|
567
567
|
expect( @validator ).to be_okay()
|
568
568
|
expect( @validator ).to_not have_errors()
|
569
569
|
|
570
|
-
expect( @validator[:enabled] ).to
|
570
|
+
expect( @validator[:enabled] ).to be_falsey()
|
571
571
|
end
|
572
572
|
|
573
573
|
it "accepts the value '0'" do
|
@@ -576,7 +576,7 @@ describe Strelka::ParamValidator do
|
|
576
576
|
expect( @validator ).to be_okay()
|
577
577
|
expect( @validator ).to_not have_errors()
|
578
578
|
|
579
|
-
expect( @validator[:enabled] ).to
|
579
|
+
expect( @validator[:enabled] ).to be_falsey()
|
580
580
|
end
|
581
581
|
|
582
582
|
it "rejects non-boolean parameters" do
|
@@ -90,7 +90,7 @@ describe Strelka::Session::Default do
|
|
90
90
|
|
91
91
|
session.save( response )
|
92
92
|
|
93
|
-
expect( described_class.sessions ).to
|
93
|
+
expect( described_class.sessions ).to include( { session_id => session_data } )
|
94
94
|
expect( response.header_data ).to match( /Set-Cookie: #{@cookie_name}=#{session_id}/i )
|
95
95
|
end
|
96
96
|
|
@@ -139,8 +139,8 @@ describe Strelka::Session::Default do
|
|
139
139
|
subject.testkey = true
|
140
140
|
subject.namespace = nil
|
141
141
|
|
142
|
-
expect( subject.meat[ :testkey ] ).to
|
143
|
-
expect( subject.greet[ :testkey ] ).to
|
142
|
+
expect( subject.meat[ :testkey ] ).to be_truthy
|
143
|
+
expect( subject.greet[ :testkey ] ).to be_truthy
|
144
144
|
expect( subject.pork[ :testkey ] ).to be_nil
|
145
145
|
end
|
146
146
|
end
|
@@ -170,7 +170,7 @@ describe Strelka::Session::Default do
|
|
170
170
|
it "accesses values via a struct-like interface" do
|
171
171
|
subject.testkey = true
|
172
172
|
|
173
|
-
expect( subject.testkey ).to
|
173
|
+
expect( subject.testkey ).to be_truthy
|
174
174
|
expect( subject.i_do_not_exist ).to be_nil
|
175
175
|
end
|
176
176
|
end
|
@@ -64,7 +64,7 @@ describe Strelka::WebSocketServer::Routing do
|
|
64
64
|
@app.class_eval do
|
65
65
|
on_nick() {}
|
66
66
|
end
|
67
|
-
expect( @app.op_callbacks ).to
|
67
|
+
expect( @app.op_callbacks.size ).to eq( 1 )
|
68
68
|
expect( @app.op_callbacks[ :nick ] ).to be_a( UnboundMethod )
|
69
69
|
end
|
70
70
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: strelka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mahlon E. Smith
|
@@ -31,7 +31,7 @@ cert_chain:
|
|
31
31
|
6mKCwjpegytE0oifXfF8k75A9105cBnNiMZOe1tXiqYc/exCgWvbggurzDOcRkZu
|
32
32
|
/YSusaiDXHKU2O3Akc3htA==
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date:
|
34
|
+
date: 2014-02-05 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: configurability
|
@@ -39,14 +39,14 @@ dependencies:
|
|
39
39
|
requirements:
|
40
40
|
- - ~>
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '2.
|
42
|
+
version: '2.1'
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - ~>
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: '2.
|
49
|
+
version: '2.1'
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: foreman
|
52
52
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,42 +95,42 @@ dependencies:
|
|
95
95
|
requirements:
|
96
96
|
- - ~>
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
version: '0.
|
98
|
+
version: '0.9'
|
99
99
|
type: :runtime
|
100
100
|
prerelease: false
|
101
101
|
version_requirements: !ruby/object:Gem::Requirement
|
102
102
|
requirements:
|
103
103
|
- - ~>
|
104
104
|
- !ruby/object:Gem::Version
|
105
|
-
version: '0.
|
105
|
+
version: '0.9'
|
106
106
|
- !ruby/object:Gem::Dependency
|
107
107
|
name: mongrel2
|
108
108
|
requirement: !ruby/object:Gem::Requirement
|
109
109
|
requirements:
|
110
110
|
- - ~>
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version: '0.
|
112
|
+
version: '0.41'
|
113
113
|
type: :runtime
|
114
114
|
prerelease: false
|
115
115
|
version_requirements: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
117
|
- - ~>
|
118
118
|
- !ruby/object:Gem::Version
|
119
|
-
version: '0.
|
119
|
+
version: '0.41'
|
120
120
|
- !ruby/object:Gem::Dependency
|
121
121
|
name: pluggability
|
122
122
|
requirement: !ruby/object:Gem::Requirement
|
123
123
|
requirements:
|
124
124
|
- - ~>
|
125
125
|
- !ruby/object:Gem::Version
|
126
|
-
version: '0.
|
126
|
+
version: '0.4'
|
127
127
|
type: :runtime
|
128
128
|
prerelease: false
|
129
129
|
version_requirements: !ruby/object:Gem::Requirement
|
130
130
|
requirements:
|
131
131
|
- - ~>
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version: '0.
|
133
|
+
version: '0.4'
|
134
134
|
- !ruby/object:Gem::Dependency
|
135
135
|
name: sysexits
|
136
136
|
requirement: !ruby/object:Gem::Requirement
|
@@ -179,14 +179,14 @@ dependencies:
|
|
179
179
|
requirements:
|
180
180
|
- - ~>
|
181
181
|
- !ruby/object:Gem::Version
|
182
|
-
version: '0
|
182
|
+
version: '1.0'
|
183
183
|
type: :runtime
|
184
184
|
prerelease: false
|
185
185
|
version_requirements: !ruby/object:Gem::Requirement
|
186
186
|
requirements:
|
187
187
|
- - ~>
|
188
188
|
- !ruby/object:Gem::Version
|
189
|
-
version: '0
|
189
|
+
version: '1.0'
|
190
190
|
- !ruby/object:Gem::Dependency
|
191
191
|
name: hoe-mercurial
|
192
192
|
requirement: !ruby/object:Gem::Requirement
|
@@ -257,6 +257,20 @@ dependencies:
|
|
257
257
|
- - ~>
|
258
258
|
- !ruby/object:Gem::Version
|
259
259
|
version: '1.2'
|
260
|
+
- !ruby/object:Gem::Dependency
|
261
|
+
name: rspec
|
262
|
+
requirement: !ruby/object:Gem::Requirement
|
263
|
+
requirements:
|
264
|
+
- - ~>
|
265
|
+
- !ruby/object:Gem::Version
|
266
|
+
version: 2.99.0.beta1
|
267
|
+
type: :development
|
268
|
+
prerelease: false
|
269
|
+
version_requirements: !ruby/object:Gem::Requirement
|
270
|
+
requirements:
|
271
|
+
- - ~>
|
272
|
+
- !ruby/object:Gem::Version
|
273
|
+
version: 2.99.0.beta1
|
260
274
|
- !ruby/object:Gem::Dependency
|
261
275
|
name: simplecov
|
262
276
|
requirement: !ruby/object:Gem::Requirement
|
@@ -291,14 +305,14 @@ dependencies:
|
|
291
305
|
requirements:
|
292
306
|
- - ~>
|
293
307
|
- !ruby/object:Gem::Version
|
294
|
-
version: '3.
|
308
|
+
version: '3.8'
|
295
309
|
type: :development
|
296
310
|
prerelease: false
|
297
311
|
version_requirements: !ruby/object:Gem::Requirement
|
298
312
|
requirements:
|
299
313
|
- - ~>
|
300
314
|
- !ruby/object:Gem::Version
|
301
|
-
version: '3.
|
315
|
+
version: '3.8'
|
302
316
|
description: |-
|
303
317
|
Strelka is a framework for creating and deploying
|
304
318
|
Mongrel2[http://mongrel2.org/] web applications in Ruby.
|
@@ -483,7 +497,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
483
497
|
version: '0'
|
484
498
|
requirements: []
|
485
499
|
rubyforge_project: strelka
|
486
|
-
rubygems_version: 2.1
|
500
|
+
rubygems_version: 2.2.1
|
487
501
|
signing_key:
|
488
502
|
specification_version: 4
|
489
503
|
summary: Strelka is a framework for creating and deploying Mongrel2[http://mongrel2.org/]
|