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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +1 -3
  4. data/History.rdoc +19 -0
  5. data/Rakefile +6 -5
  6. data/lib/strelka.rb +2 -2
  7. data/lib/strelka/app.rb +8 -21
  8. data/lib/strelka/app/auth.rb +1 -1
  9. data/lib/strelka/app/restresources.rb +72 -20
  10. data/lib/strelka/app/sessions.rb +6 -4
  11. data/lib/strelka/authprovider.rb +1 -1
  12. data/lib/strelka/cookie.rb +2 -1
  13. data/lib/strelka/httprequest.rb +47 -43
  14. data/lib/strelka/httprequest/acceptparams.rb +3 -3
  15. data/lib/strelka/httprequest/negotiation.rb +4 -0
  16. data/lib/strelka/mixins.rb +27 -28
  17. data/lib/strelka/multipartparser.rb +1 -3
  18. data/lib/strelka/plugins.rb +1 -2
  19. data/lib/strelka/router.rb +2 -2
  20. data/lib/strelka/session.rb +3 -2
  21. data/lib/strelka/session/db.rb +1 -0
  22. data/spec/strelka/app/auth_spec.rb +48 -48
  23. data/spec/strelka/app/filters_spec.rb +8 -8
  24. data/spec/strelka/app/parameters_spec.rb +1 -1
  25. data/spec/strelka/app/restresources_spec.rb +69 -35
  26. data/spec/strelka/app/routing_spec.rb +1 -1
  27. data/spec/strelka/app/templating_spec.rb +1 -1
  28. data/spec/strelka/authprovider/basic_spec.rb +1 -1
  29. data/spec/strelka/authprovider/hostaccess_spec.rb +3 -3
  30. data/spec/strelka/cookie_spec.rb +6 -5
  31. data/spec/strelka/cookieset_spec.rb +1 -1
  32. data/spec/strelka/discovery_spec.rb +2 -2
  33. data/spec/strelka/httprequest/acceptparams_spec.rb +16 -16
  34. data/spec/strelka/httprequest/negotiation_spec.rb +73 -67
  35. data/spec/strelka/httprequest/session_spec.rb +2 -2
  36. data/spec/strelka/httprequest_spec.rb +38 -6
  37. data/spec/strelka/httpresponse/session_spec.rb +3 -3
  38. data/spec/strelka/mixins_spec.rb +3 -3
  39. data/spec/strelka/multipartparser_spec.rb +2 -2
  40. data/spec/strelka/paramvalidator_spec.rb +22 -22
  41. data/spec/strelka/plugins_spec.rb +1 -1
  42. data/spec/strelka/session/default_spec.rb +4 -4
  43. data/spec/strelka/websocketserver/routing_spec.rb +1 -1
  44. metadata +29 -15
  45. 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 be_false()
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 be_true()
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 "treats a malformed query string as the lack of a query" do
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( req.params ).to eq({})
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, /no content type/i )
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 be_false
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 have( 1 ).member
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 have( 2 ).members
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 be_true()
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 be_true()
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 be_false()
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
@@ -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 including class to hide its ::new method" do
23
- testclass = Class.new { include Strelka::AbstractClass }
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
- include Strelka::AbstractClass
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 have( 5 ).keys
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 have( 2 ).members
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 be_true
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 be_false()
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 have(1).members
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 have(1).members
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 have(1).keys
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 have(2).members
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 have(2).members
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 have(3).members
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 have(2).members
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 have( 2 ).members
290
- expect( @validator.error_messages ).to have( 2 ).members
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 be_true()
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 be_true()
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 be_true()
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 be_true()
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 be_true()
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 be_false()
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 be_false()
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 be_false()
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 be_false()
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 be_false()
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 be_false()
579
+ expect( @validator[:enabled] ).to be_falsey()
580
580
  end
581
581
 
582
582
  it "rejects non-boolean parameters" do
@@ -264,7 +264,7 @@ describe "Strelka plugin system" do
264
264
  route_some_stuff
265
265
  end
266
266
 
267
- expect( subclass.routed ).to be_true()
267
+ expect( subclass.routed ).to be_truthy()
268
268
  end
269
269
 
270
270
  end
@@ -90,7 +90,7 @@ describe Strelka::Session::Default do
90
90
 
91
91
  session.save( response )
92
92
 
93
- expect( described_class.sessions ).to eq( { session_id => session_data } )
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 be_true
143
- expect( subject.greet[ :testkey ] ).to be_true
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 be_true
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 have( 1 ).member
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.7.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: 2013-11-08 00:00:00.000000000 Z
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.0'
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.0'
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.6'
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.6'
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.40'
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.40'
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.2'
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.2'
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.9'
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.9'
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.7'
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.7'
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.10
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/]