strelka 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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/]