strelka 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d0b5c7ba99043fe79888689e95d555001a5ea70f
4
- data.tar.gz: 2f113c4c3820c8b8fbf607dccc3e70e312899c55
3
+ metadata.gz: 0b14749495dff16df191c5371094312f513e7b6c
4
+ data.tar.gz: 5db0407a3325455375fa0fbce72257e23cf32a5c
5
5
  SHA512:
6
- metadata.gz: e164cf5a1ad00a8093263ff9138f2a87d64998ac3f9154fb323237a922bf78c88f4f54f70d282c1847c642ae3ec1eec3d32ec6b0a9bc5ad43a55d3a1b950cd36
7
- data.tar.gz: f141b866194eb71af3344a09f1b9ecfee65a1d8f6a48c989166e57a6e1024698b4aed3beb7fd642b9a284d4f422d21c760cf7b02588e5e50e264f984c2080ea9
6
+ metadata.gz: 2b36ed3558f2cac0228536ea0251e696038b8e2f9711355512704145196c42745c2261df604c5aa9d2cc1eb66c4670142c92f2eef9f9d704487556ef3857ed08
7
+ data.tar.gz: 129997e0bdad8b2962b083627902917d1e8c2948133910dbc2aa1e947733b9d0b18b8472c7ed6b5af79760b66254ff70606d8d6ee80e813ee50b75e0d4c77cd0
checksums.yaml.gz.sig CHANGED
Binary file
data/ChangeLog CHANGED
@@ -1,13 +1,213 @@
1
+ 2014-06-06 Mahlon E. Smith <mahlon@martini.nu>
2
+
3
+ * lib/strelka/app/auth.rb, spec/strelka/app/auth_spec.rb:
4
+ Auth plugin: Add the ability to modify permission sets from the
5
+ require_perms_for() block.
6
+ [69fbfc1e2de3] [tip]
7
+
8
+ 2014-06-05 Michael Granger <ged@FaerieMUD.org>
9
+
10
+ * .rvm.gems, Gemfile, Rakefile, lib/strelka/httprequest.rb,
11
+ lib/strelka/testing.rb, spec/strelka/app/auth_spec.rb,
12
+ spec/strelka/app/restresources_spec.rb,
13
+ spec/strelka/app/routing_spec.rb, spec/strelka/discovery_spec.rb,
14
+ spec/strelka/httpresponse/negotiation_spec.rb,
15
+ spec/strelka/httpresponse/session_spec.rb,
16
+ spec/strelka/plugins_spec.rb, spec/strelka_spec.rb:
17
+ Updated for RSpec 3.0; bumped deps.
18
+ [04bd8611e28f] [github/master]
19
+
20
+ 2014-02-05 Michael Granger <ged@FaerieMUD.org>
21
+
22
+ * .hgtags:
23
+ Added tag v0.8.0 for changeset 67f75293f04a
24
+ [d972384198ab]
25
+
26
+ * .hgsigs:
27
+ Added signature for changeset 6aec6fa45324
28
+ [67f75293f04a] [v0.8.0]
29
+
30
+ * History.rdoc:
31
+ Update the history
32
+ [6aec6fa45324]
33
+
34
+ 2014-02-02 Michael Granger <ged@FaerieMUD.org>
35
+
36
+ * .rvm.gems, Rakefile:
37
+ Update dependencies.
38
+ [4ddae11c28b8]
39
+
40
+ 2014-01-22 Mahlon E. Smith <mahlon@laika.com>
41
+
42
+ * lib/strelka/httprequest.rb:
43
+ Don't modify the original request URI object when calling
44
+ HttpRequest#base_uri.
45
+ [6e2d1e0e89d1]
46
+
47
+ 2014-01-29 Michael Granger <ged@FaerieMUD.org>
48
+
49
+ * lib/strelka/app.rb:
50
+ Add a convenience method for fetching a default app instance to
51
+ Strelka::App
52
+ [0e6e0e0be5e7]
53
+
54
+ 2014-01-13 Michael Granger <ged@FaerieMUD.org>
55
+
56
+ * spec/strelka/app/auth_spec.rb, spec/strelka/app/filters_spec.rb,
57
+ spec/strelka/app/parameters_spec.rb,
58
+ spec/strelka/app/restresources_spec.rb,
59
+ spec/strelka/app/routing_spec.rb,
60
+ spec/strelka/app/templating_spec.rb,
61
+ spec/strelka/authprovider/basic_spec.rb,
62
+ spec/strelka/authprovider/hostaccess_spec.rb,
63
+ spec/strelka/cookie_spec.rb, spec/strelka/cookieset_spec.rb,
64
+ spec/strelka/discovery_spec.rb,
65
+ spec/strelka/httprequest/acceptparams_spec.rb,
66
+ spec/strelka/httprequest/negotiation_spec.rb,
67
+ spec/strelka/httprequest/session_spec.rb,
68
+ spec/strelka/httprequest_spec.rb,
69
+ spec/strelka/httpresponse/session_spec.rb,
70
+ spec/strelka/multipartparser_spec.rb,
71
+ spec/strelka/paramvalidator_spec.rb, spec/strelka/plugins_spec.rb,
72
+ spec/strelka/session/default_spec.rb,
73
+ spec/strelka/websocketserver/routing_spec.rb:
74
+ Fix use of deprecated RSpec syntax.
75
+ [9f7f4f4dba0b]
76
+
77
+ * lib/strelka/authprovider.rb,
78
+ lib/strelka/httprequest/acceptparams.rb, lib/strelka/mixins.rb,
79
+ lib/strelka/plugins.rb, lib/strelka/router.rb,
80
+ lib/strelka/session.rb, spec/strelka/mixins_spec.rb:
81
+ Merge improvements to the AbstractClass mixin from elsewhere.
82
+ [96725c68d4ae]
83
+
84
+ 2014-01-02 Michael Granger <ged@FaerieMUD.org>
85
+
86
+ * lib/strelka.rb:
87
+ Merged with bdb098771858
88
+ [140055f6ee81]
89
+
90
+ 2013-12-02 Mahlon E. Smith <mahlon@martini.nu>
91
+
92
+ * .rvm.gems, lib/strelka.rb, lib/strelka/app/auth.rb,
93
+ spec/strelka/session/default_spec.rb:
94
+ Restore access to request parameters from the authentication plugin.
95
+ [bdb098771858]
96
+
97
+ 2014-01-01 Michael Granger <ged@FaerieMUD.org>
98
+
99
+ * History.rdoc, lib/strelka.rb:
100
+ Bump minor version, update history
101
+ [2d8433106860]
102
+
103
+ * lib/strelka/app/restresources.rb, lib/strelka/httprequest.rb,
104
+ lib/strelka/httprequest/negotiation.rb,
105
+ lib/strelka/multipartparser.rb,
106
+ spec/strelka/app/restresources_spec.rb,
107
+ spec/strelka/httprequest/negotiation_spec.rb,
108
+ spec/strelka/httprequest_spec.rb:
109
+ Fix PUT/POST routes in restresources to be more REST-y; i.e., POST
110
+ for non-idempotent methods, PUT for idempotent ones.
111
+ [c91b759e2dfa]
112
+
113
+ * .rvmrc:
114
+ Updated rvmrc; don't autoload the gemset
115
+ [26dd19cb5b45]
116
+
117
+ * .tm_properties:
118
+ Fix project settings
119
+ [eae55bb5318e]
120
+
121
+ 2013-12-30 Michael Granger <ged@FaerieMUD.org>
122
+
123
+ * lib/strelka/cookie.rb, spec/strelka/cookie_spec.rb:
124
+ Make Strelka::Cookie raise on malformed cookies
125
+ [bb16cdc0c251]
126
+
127
+ 2013-11-20 Michael Granger <ged@FaerieMUD.org>
128
+
129
+ * lib/strelka/app/sessions.rb, lib/strelka/session.rb,
130
+ lib/strelka/session/db.rb:
131
+ Fix some API docs for sessions
132
+ [924139279054]
133
+
134
+ * lib/strelka/app.rb:
135
+ Remove config keys that moved to Discovery
136
+ [c4b52cde2f47]
137
+
138
+ 2013-11-08 Michael Granger <ged@FaerieMUD.org>
139
+
140
+ * .hgtags:
141
+ Added tag v0.7.0 for changeset fb8d0093e8f6
142
+ [71ad508ff67c]
143
+
144
+ * .hgsigs:
145
+ Added signature for changeset 2caa91898658
146
+ [fb8d0093e8f6] [v0.7.0]
147
+
148
+ * .rvm.gems, History.rdoc, Rakefile, lib/strelka.rb:
149
+ Bump minor version, update dependencies, update history.
150
+ [2caa91898658]
151
+
152
+ * spec/strelka/discovery_spec.rb:
153
+ Fix discovery specs
154
+ [a3898e620a63]
155
+
156
+ 2013-10-21 Michael Granger <ged@FaerieMUD.org>
157
+
158
+ * lib/strelka/app/filters.rb, lib/strelka/app/templating.rb,
159
+ spec/strelka/app/filters_spec.rb:
160
+ Make response filters always receive a response
161
+
162
+ ...even if the handler returns a Symbol, e.g., for the templating
163
+ plugin.
164
+ [e8958f7795d9]
165
+
166
+ 2013-10-18 Michael Granger <ged@FaerieMUD.org>
167
+
168
+ * lib/strelka/app/templating.rb:
169
+ Add a note about needed documentation to :templating
170
+ [bc94898e6bdd]
171
+
172
+ * Plugins.rdoc, lib/strelka/app/auth.rb, lib/strelka/app/errors.rb,
173
+ lib/strelka/app/filters.rb, lib/strelka/app/negotiation.rb,
174
+ lib/strelka/app/parameters.rb, lib/strelka/app/routing.rb,
175
+ lib/strelka/app/sessions.rb, lib/strelka/app/templating.rb,
176
+ lib/strelka/plugins.rb, lib/strelka/websocketserver/routing.rb,
177
+ spec/strelka/plugins_spec.rb:
178
+ Change filter plugin order; change run_before/run_after to
179
+ run_outside/run_inside.
180
+
181
+ - Backward-compatibility maintained with an alias.
182
+ [0027480d474e]
183
+
184
+ 2013-10-17 Michael Granger <ged@FaerieMUD.org>
185
+
186
+ * lib/strelka/paramvalidator.rb, spec/strelka/paramvalidator_spec.rb:
187
+ Consider empty string as no value for parameter validation. (fixes
188
+ #8)
189
+ [662737a841c4]
190
+
191
+ 2013-10-15 Michael Granger <ged@FaerieMUD.org>
192
+
193
+ * README.rdoc:
194
+ Update the project URL and copyright date in the README
195
+ [8ab80d544db2]
196
+
197
+ * .hoerc, Manifest.txt:
198
+ Remove runtime data from examples dir from the manifest
199
+ [0c9efdac0829]
200
+
1
201
  2013-10-15 Michael Granger <ged@faeriemud.org>
2
202
 
3
203
  * Close branch rdolgushin/ideasrdoc-russian-woof-fix-1381879886956
4
- [dedc90b70209] [tip] <rdolgushin/ideasrdoc-russian-woof-fix-1381879886956>
204
+ [dedc90b70209] <rdolgushin/ideasrdoc-russian-woof-fix-1381879886956>
5
205
 
6
206
  * Merged in rdolgushin/strelka/rdolgushin/ideasrdoc-russian-woof-
7
207
  fix-1381879886956 (pull request #2)
8
208
 
9
209
  IDEAS.rdoc: Russian 'woof' fix
10
- [ac7fea5af58f] [github/master]
210
+ [ac7fea5af58f]
11
211
 
12
212
  2013-10-15 Roman Dolgushin <rd@roman-dolgushin.ru>
13
213
 
data/History.rdoc CHANGED
@@ -1,3 +1,9 @@
1
+ == v0.9.0 [2014-06-06] Mahlon E. Smith <mahlon@martini.nu>
2
+
3
+ - Auth plugin: Add the ability to modify permission sets from the
4
+ require_perms_for() block.
5
+
6
+
1
7
  == v0.8.0 [2014-02-05] Michael Granger <ged@FaerieMUD.org>
2
8
 
3
9
  Make malformed headers and data consistently error with 400 status rather than
data/Rakefile CHANGED
@@ -37,7 +37,7 @@ hoespec = Hoe.spec 'strelka' do
37
37
 
38
38
  self.dependency 'hoe-deveiate', '~> 0.3', :developer
39
39
  self.dependency 'hoe-bundler', '~> 1.2', :developer
40
- self.dependency 'rspec', '~> 2.99.0.beta1', :developer
40
+ self.dependency 'rspec', '~> 3.0', :developer
41
41
  self.dependency 'simplecov', '~> 0.7', :developer
42
42
  self.dependency 'rdoc-generator-fivefish', '~> 0.2', :developer
43
43
 
@@ -621,8 +621,18 @@ module Strelka::App::Auth
621
621
 
622
622
  self.log.debug " positive perm criteria: %p" % [ self.class.positive_perms_criteria ]
623
623
  self.class.positive_perms_criteria.each do |pattern, block, newperms|
624
- next unless self.request_matches_criteria( request, pattern, &block )
624
+ criteria = self.request_matches_criteria( request, pattern, &block )
625
+ next unless criteria
626
+
625
627
  newperms = Array( newperms )
628
+
629
+ if criteria.is_a?( Symbol )
630
+ newperms << criteria
631
+
632
+ elsif criteria.respond_to?( :first ) && criteria.first.is_a?( Symbol )
633
+ newperms += criteria
634
+ end
635
+
626
636
  newperms << self.default_permission if newperms.empty?
627
637
 
628
638
  raise TypeError, "Permissions must be Symbols; got: %p" % [newperms] unless
@@ -216,6 +216,7 @@ class Strelka::HTTPRequest < Mongrel2::HTTPRequest
216
216
  code = perm ? HTTP::MOVED_PERMANENTLY : HTTP::MOVED_TEMPORARILY
217
217
  finish_with( code, "redirect from #{self.uri.path} to #{uri}", :location => uri )
218
218
  end
219
+ alias_method :redirect_to, :redirect
219
220
 
220
221
 
221
222
  #########
@@ -61,6 +61,12 @@ module Strelka::Testing
61
61
  attr_reader :expected_status, :expected_message, :expected_headers
62
62
 
63
63
 
64
+ ### Matcher API -- return true to enable the use of block expectations.
65
+ def supports_block_expectations?
66
+ return true
67
+ end
68
+
69
+
64
70
  ### Also expect a header with the given +name+ and +value+ from the response.
65
71
  def and_header( name, value=nil )
66
72
  if name.is_a?( Hash )
@@ -160,13 +166,13 @@ module Strelka::Testing
160
166
 
161
167
 
162
168
  ### Return a message suitable for describing when the matcher fails when it should succeed.
163
- def failure_message_for_should
169
+ def failure_message
164
170
  return "expected response to finish_with %s" % [ @failure ]
165
171
  end
166
172
 
167
173
 
168
174
  ### Return a message suitable for describing when the matcher succeeds when it should fail.
169
- def failure_message_for_should_not
175
+ def failure_message_when_negated
170
176
  return "expected response not to finish_with %s" % [ @failure ]
171
177
  end
172
178
 
data/lib/strelka.rb CHANGED
@@ -24,10 +24,10 @@ module Strelka
24
24
  log_as :strelka
25
25
 
26
26
  # Library version constant
27
- VERSION = '0.8.0'
27
+ VERSION = '0.9.0'
28
28
 
29
29
  # Version-control revision constant
30
- REVISION = %q$Revision: 140055f6ee81 $
30
+ REVISION = %q$Revision: 406a68302dc6 $
31
31
 
32
32
  require 'strelka/constants'
33
33
  require 'strelka/exceptions'
@@ -47,7 +47,7 @@ describe Strelka::App::Auth do
47
47
  end
48
48
  app.install_plugins
49
49
 
50
- expect( @request_factory.get( '/api/v1/verify' ) ).to respond_to( :authenticated? )
50
+ expect( @request_factory.get('/api/v1/verify') ).to respond_to( :authenticated? )
51
51
  end
52
52
 
53
53
 
@@ -58,7 +58,7 @@ describe Strelka::App::Auth do
58
58
  plugins :auth
59
59
 
60
60
  # Stand in for a real AuthProvider
61
- @auth_provider = RSpec::Mocks::Mock
61
+ @auth_provider = RSpec::Mocks::Double
62
62
 
63
63
  def initialize( appid='auth-test', sspec=TEST_SEND_SPEC, rspec=TEST_RECV_SPEC )
64
64
  super
@@ -98,7 +98,8 @@ describe Strelka::App::Auth do
98
98
  expect( @app ).to_not have_auth_criteria()
99
99
  end
100
100
 
101
- it "sets the authenticated_user attribute of the request to the credentials of the authenticating user" do
101
+ it "sets the authenticated_user attribute of the request to the credentials " +
102
+ "of the authenticating user" do
102
103
  app = @app.new
103
104
  req = @request_factory.get( '/api/v1' )
104
105
 
@@ -417,6 +418,55 @@ describe Strelka::App::Auth do
417
418
  expect( app.required_perms_for(req) ).to eq( [ :auth_test ] )
418
419
  end
419
420
 
421
+ it "allows specific required permissions to be returned by the block" do
422
+ @app.require_perms_for( %r{.*} ) do |req|
423
+ :write_access if req.verb != :GET
424
+ end
425
+ app = @app.new
426
+
427
+ req = @request_factory.get( '/api/v1/accounts' )
428
+ expect( app.required_perms_for(req) ).to eq( [] )
429
+ req = @request_factory.put( '/api/v1/accounts' )
430
+ expect( app.required_perms_for(req) ).to eq( [ :write_access ] )
431
+ end
432
+
433
+ it "adds specific required permissions returned by the block to argument permissions" do
434
+ @app.require_perms_for( %r{.*}, :basic_access ) do |req|
435
+ :write_access if req.verb != :GET
436
+ end
437
+ app = @app.new
438
+
439
+ req = @request_factory.get( '/api/v1/accounts' )
440
+ expect( app.required_perms_for(req) ).to eq( [] )
441
+ req = @request_factory.put( '/api/v1/accounts' )
442
+ expect( app.required_perms_for(req) ).to include( :basic_access, :write_access )
443
+ end
444
+
445
+ it "allows specific, multiple required permissions to be returned by the block" do
446
+ @app.require_perms_for( %r{.*} ) do |req|
447
+ [ :write_access, :is_handsome ] if req.verb != :GET
448
+ end
449
+ app = @app.new
450
+
451
+ req = @request_factory.get( '/api/v1/accounts' )
452
+ expect( app.required_perms_for(req) ).to eq( [] )
453
+ req = @request_factory.put( '/api/v1/accounts' )
454
+ expect( app.required_perms_for(req) ).to include( :is_handsome, :write_access )
455
+ end
456
+
457
+ it "adds specific, multiple required permissions returned by the block to argument permissions" do
458
+ @app.require_perms_for( %r{.*}, :basic_access ) do |req|
459
+ [ :write_access, :is_handsome ] if req.verb != :GET
460
+ end
461
+ app = @app.new
462
+
463
+ req = @request_factory.get( '/api/v1/accounts' )
464
+ expect( app.required_perms_for(req) ).to eq( [] )
465
+ req = @request_factory.put( '/api/v1/accounts' )
466
+ expect( app.required_perms_for(req) ).to include( :basic_access, :write_access, :is_handsome )
467
+ end
468
+
469
+
420
470
  it "allows negative perms criteria to be declared with a string" do
421
471
  @app.no_perms_for( '/string' )
422
472
  app = @app.new
@@ -561,7 +611,7 @@ describe Strelka::App::Auth do
561
611
  app.handle( req )
562
612
  end
563
613
 
564
- it "authenticates and authorizes a request that only matches the auth criteria"do
614
+ it "authenticates and authorizes a request that only matches the auth criteria" do
565
615
  req = @request_factory.get( '/api/v1/onlyauth' )
566
616
 
567
617
  app = @app.new
@@ -716,7 +766,8 @@ describe Strelka::App::Auth do
716
766
 
717
767
  app = @app.new
718
768
  allow( app.auth_provider ).to receive( :authenticate ).and_return( :credentials )
719
- expect( app.auth_provider ).to receive( :authorize ).with( :credentials, req, [:admin, :upload] )
769
+ expect( app.auth_provider ).to receive( :authorize ).
770
+ with( :credentials, req, [:admin, :upload] )
720
771
 
721
772
  app.handle( req )
722
773
  end
@@ -76,27 +76,27 @@ describe Strelka::App::RestResources do
76
76
  it "keeps track of what resources are mounted where" do
77
77
  expect( @app.resource_verbs.size ).to eq( 1 )
78
78
  expect( @app.resource_verbs ).to include( 'servers' )
79
- @app.resource_verbs[ 'servers' ].
80
- should include( :OPTIONS, :GET, :HEAD, :POST, :PUT, :DELETE )
79
+ expect(@app.resource_verbs[ 'servers' ]).
80
+ to include( :OPTIONS, :GET, :HEAD, :POST, :PUT, :DELETE )
81
81
  end
82
82
 
83
83
  # Reader regular routes
84
- it { should have_route(:OPTIONS, 'servers') }
85
- it { should have_route(:GET, 'servers') }
86
- it { should have_route(:GET, 'servers/:id') }
84
+ it { is_expected.to have_route(:OPTIONS, 'servers') }
85
+ it { is_expected.to have_route(:GET, 'servers') }
86
+ it { is_expected.to have_route(:GET, 'servers/:id') }
87
87
 
88
88
  # Writer regular routes
89
- it { should have_route(:POST, 'servers') }
90
- it { should have_route(:POST, 'servers/:id') }
91
- it { should have_route(:PUT, 'servers') }
92
- it { should have_route(:PUT, 'servers/:id') }
93
- it { should have_route(:DELETE, 'servers') }
94
- it { should have_route(:DELETE, 'servers/:id') }
89
+ it { is_expected.to have_route(:POST, 'servers') }
90
+ it { is_expected.to have_route(:POST, 'servers/:id') }
91
+ it { is_expected.to have_route(:PUT, 'servers') }
92
+ it { is_expected.to have_route(:PUT, 'servers/:id') }
93
+ it { is_expected.to have_route(:DELETE, 'servers') }
94
+ it { is_expected.to have_route(:DELETE, 'servers/:id') }
95
95
 
96
96
  # Reader composite routes
97
- it { should have_route(:GET, 'servers/by_uuid/:uuid') }
98
- it { should have_route(:GET, 'servers/:id/hosts') }
99
- it { should have_route(:GET, 'servers/:id/filters') }
97
+ it { is_expected.to have_route(:GET, 'servers/by_uuid/:uuid') }
98
+ it { is_expected.to have_route(:GET, 'servers/:id/hosts') }
99
+ it { is_expected.to have_route(:GET, 'servers/:id/filters') }
100
100
 
101
101
  end
102
102
 
@@ -114,29 +114,29 @@ describe Strelka::App::RestResources do
114
114
  it "keeps track of what resources are mounted where" do
115
115
  expect( @app.resource_verbs.size ).to eq( 1 )
116
116
  expect( @app.resource_verbs ).to include( 'servers' )
117
- @app.resource_verbs[ 'servers' ].
118
- should include( :OPTIONS, :GET, :HEAD )
119
- @app.resource_verbs[ 'servers' ].
120
- should_not include( :POST, :PUT, :DELETE )
117
+ expect(@app.resource_verbs[ 'servers' ]).
118
+ to include( :OPTIONS, :GET, :HEAD )
119
+ expect(@app.resource_verbs[ 'servers' ]).
120
+ not_to include( :POST, :PUT, :DELETE )
121
121
  end
122
122
 
123
123
  # Reader regular routes
124
- it { should have_route(:OPTIONS, 'servers') }
125
- it { should have_route(:GET, 'servers') }
126
- it { should have_route(:GET, 'servers/:id') }
124
+ it { is_expected.to have_route(:OPTIONS, 'servers') }
125
+ it { is_expected.to have_route(:GET, 'servers') }
126
+ it { is_expected.to have_route(:GET, 'servers/:id') }
127
127
 
128
128
  # Writer regular routes
129
- it { should_not have_route(:POST, 'servers') }
130
- it { should_not have_route(:POST, 'servers/:id') }
131
- it { should_not have_route(:PUT, 'servers') }
132
- it { should_not have_route(:PUT, 'servers/:id') }
133
- it { should_not have_route(:DELETE, 'servers') }
134
- it { should_not have_route(:DELETE, 'servers/:id') }
129
+ it { is_expected.not_to have_route(:POST, 'servers') }
130
+ it { is_expected.not_to have_route(:POST, 'servers/:id') }
131
+ it { is_expected.not_to have_route(:PUT, 'servers') }
132
+ it { is_expected.not_to have_route(:PUT, 'servers/:id') }
133
+ it { is_expected.not_to have_route(:DELETE, 'servers') }
134
+ it { is_expected.not_to have_route(:DELETE, 'servers/:id') }
135
135
 
136
136
  # Reader composite routes
137
- it { should have_route(:GET, 'servers/by_uuid/:uuid') }
138
- it { should have_route(:GET, 'servers/:id/hosts') }
139
- it { should have_route(:GET, 'servers/:id/filters') }
137
+ it { is_expected.to have_route(:GET, 'servers/by_uuid/:uuid') }
138
+ it { is_expected.to have_route(:GET, 'servers/:id/hosts') }
139
+ it { is_expected.to have_route(:GET, 'servers/:id/filters') }
140
140
 
141
141
  end
142
142
 
@@ -517,8 +517,8 @@ describe Strelka::App::RestResources do
517
517
  it "has its metadata inherited by subclasses" do
518
518
  expect( subject.resource_verbs.size ).to eq( 1 )
519
519
  expect( subject.resource_verbs ).to include( 'servers' )
520
- subject.resource_verbs[ 'servers' ].
521
- should include( :OPTIONS, :GET, :HEAD, :POST, :PUT, :DELETE )
520
+ expect(subject.resource_verbs[ 'servers' ]).
521
+ to include( :OPTIONS, :GET, :HEAD, :POST, :PUT, :DELETE )
522
522
  end
523
523
 
524
524
  end # supports inheritance
@@ -216,10 +216,10 @@ describe Strelka::App::Routing do
216
216
 
217
217
  expect( subclass.routes.size ).to eq( 3 )
218
218
 
219
- subclass.routes.
220
- should include([ :GET, ['info'], {action: @app.instance_method(:GET_info), options: {}} ])
221
- subclass.routes.
222
- should include([ :GET, ['about'], {action: @app.instance_method(:GET_about), options: {}} ])
219
+ expect(subclass.routes).
220
+ to include([ :GET, ['info'], {action: @app.instance_method(:GET_info), options: {}} ])
221
+ expect(subclass.routes).
222
+ to include([ :GET, ['about'], {action: @app.instance_method(:GET_about), options: {}} ])
223
223
  expect( subclass.routes ).to include(
224
224
  [ :GET, ['origami'], {action: subclass.instance_method(:GET_origami), options: {}} ]
225
225
  )
@@ -49,7 +49,7 @@ describe Strelka::Discovery do
49
49
  app_path = Pathname( app_file ).expand_path
50
50
  app_class = nil
51
51
 
52
- expect( Kernel ).to receive( :load ).with( app_path.to_s ).and_return do
52
+ expect( Kernel ).to receive( :load ).with( app_path.to_s ) do
53
53
  app_class = Class.new( discoverable_class )
54
54
  end
55
55
  expect( described_class.load(app_file) ).to eq( [ app_class ] )
@@ -108,8 +108,7 @@ describe Strelka::Discovery do
108
108
 
109
109
  expect( described_class ).to receive( :gem ).with( 'blood-orgy' )
110
110
  expect( Kernel ).to receive( :load ).
111
- with( "#{gemspec.full_gem_path}/data/blood-orgy/apps/kurzweil" ).
112
- and_return do
111
+ with( "#{gemspec.full_gem_path}/data/blood-orgy/apps/kurzweil" ) do
113
112
  Class.new( discoverable_class )
114
113
  true
115
114
  end
@@ -140,15 +140,14 @@ describe Strelka::HTTPResponse::Negotiation do
140
140
  end
141
141
 
142
142
  it "transcodes File entity bodies if the charset is not acceptable" do
143
- pending "implementation of IO transcoding" do
144
- @req.headers.accept_charset = 'koi8-r, koi8-u;q=0.9, utf-8;q=0.8'
143
+ pending "implementation of IO transcoding"
144
+ @req.headers.accept_charset = 'koi8-r, koi8-u;q=0.9, utf-8;q=0.8'
145
145
 
146
- @res.body = File.open( __FILE__, 'r:iso-8859-5' )
147
- @res.content_type = 'text/plain'
146
+ @res.body = File.open( __FILE__, 'r:iso-8859-5' )
147
+ @res.content_type = 'text/plain'
148
148
 
149
- expect( @res.negotiated_body.read.encoding ).to eq( Encoding::KOI8_R )
150
- expect( @res.header_data ).to match( /accept-charset(?!-)/i )
151
- end
149
+ expect( @res.negotiated_body.read.encoding ).to eq( Encoding::KOI8_R )
150
+ expect( @res.header_data ).to match( /accept-charset(?!-)/i )
152
151
  end
153
152
 
154
153
  end
@@ -46,9 +46,8 @@ describe Strelka::HTTPResponse::Session, "-extended response" do
46
46
 
47
47
  it "sets its request's session when its session is set" do
48
48
  @res.session = Strelka::Session.create( :default )
49
- pending "not sure if it should do this or not" do
50
- expect( @req.session ).to be( @res.session )
51
- end
49
+ pending "not sure if it should do this or not"
50
+ expect( @req.session ).to be( @res.session )
52
51
  end
53
52
 
54
53
  context "for a request with no session ID" do
@@ -91,8 +91,8 @@ describe "Strelka plugin system" do
91
91
 
92
92
 
93
93
  it "sorts before it in the plugin registry" do
94
- Strelka::Pluggable.loaded_plugins.tsort.
95
- should order( @plugin.plugin_name ).after( @before_mod.plugin_name )
94
+ expect(Strelka::Pluggable.loaded_plugins.tsort).
95
+ to order( @plugin.plugin_name ).after( @before_mod.plugin_name )
96
96
  end
97
97
 
98
98
  end
@@ -110,8 +110,8 @@ describe "Strelka plugin system" do
110
110
 
111
111
 
112
112
  it "sorts after it in the plugin registry" do
113
- Strelka::Pluggable.loaded_plugins.tsort.
114
- should order( @plugin.plugin_name ).before( @after_mod.plugin_name )
113
+ expect(Strelka::Pluggable.loaded_plugins.tsort).
114
+ to order( @plugin.plugin_name ).before( @after_mod.plugin_name )
115
115
  end
116
116
 
117
117
  end
@@ -123,8 +123,7 @@ describe "Strelka plugin system" do
123
123
 
124
124
  it "requires plugins from a directory based on the name of the loader" do
125
125
  expect( Strelka::Pluggable ).to receive( :require ).
126
- with( 'strelka/pluggable/scheduler' ).
127
- and_return do
126
+ with( 'strelka/pluggable/scheduler' ) do
128
127
  Module.new do
129
128
  def self::name; "Strelka::Pluggable::Scheduler"; end
130
129
  extend Strelka::Plugin
data/spec/strelka_spec.rb CHANGED
@@ -35,8 +35,7 @@ describe Strelka do
35
35
  and_return([ Pathname('data/mox/apps/moxthefox') ])
36
36
 
37
37
  expect( Kernel ).to receive( :load ).
38
- with( File.expand_path 'data/mox/apps/moxthefox' ).
39
- and_return { mox_app = Class.new(Strelka::App) }
38
+ with( File.expand_path 'data/mox/apps/moxthefox' ) { mox_app = Class.new(Strelka::App) }
40
39
 
41
40
  expect( described_class::App('moxthefox') ).to be( mox_app )
42
41
  end
data.tar.gz.sig CHANGED
@@ -1 +1 @@
1
- �9u�*_`�&k18���=>HA���
1
+ @
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.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mahlon E. Smith
@@ -13,7 +13,7 @@ cert_chain:
13
13
  -----BEGIN CERTIFICATE-----
14
14
  MIIDbDCCAlSgAwIBAgIBATANBgkqhkiG9w0BAQUFADA+MQwwCgYDVQQDDANnZWQx
15
15
  GTAXBgoJkiaJk/IsZAEZFglGYWVyaWVNVUQxEzARBgoJkiaJk/IsZAEZFgNvcmcw
16
- HhcNMTMwMjI3MTY0ODU4WhcNMTQwMjI3MTY0ODU4WjA+MQwwCgYDVQQDDANnZWQx
16
+ HhcNMTQwMzE5MDQzNTI2WhcNMTUwMzE5MDQzNTI2WjA+MQwwCgYDVQQDDANnZWQx
17
17
  GTAXBgoJkiaJk/IsZAEZFglGYWVyaWVNVUQxEzARBgoJkiaJk/IsZAEZFgNvcmcw
18
18
  ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDb92mkyYwuGBg1oRxt2tkH
19
19
  +Uo3LAsaL/APBfSLzy8o3+B3AUHKCjMUaVeBoZdWtMHB75X3VQlvXfZMyBxj59Vo
@@ -24,14 +24,14 @@ cert_chain:
24
24
  AgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBSZ0hCV
25
25
  qoHr122fGKelqffzEQBhszAcBgNVHREEFTATgRFnZWRARmFlcmllTVVELm9yZzAc
26
26
  BgNVHRIEFTATgRFnZWRARmFlcmllTVVELm9yZzANBgkqhkiG9w0BAQUFAAOCAQEA
27
- Vlcfyq6GwyE8i0QuFPCeVOwJaneSvcwx316DApjy9/tt2YD2HomLbtpXtji5QXor
28
- ON6oln4tWBIB3Klbr3szq5oR3Rc1D02SaBTalxSndp4M6UkW9hRFu5jn98pDB4fq
29
- 5l8wMMU0Xdmqx1VYvysVAjVFVC/W4NNvlmg+2mEgSVZP5K6Tc9qDh3eMQInoYw6h
30
- t1YA6RsUJHp5vGQyhP1x34YpLAaly8icbns/8PqOf7Osn9ztmg8bOMJCeb32eQLj
31
- 6mKCwjpegytE0oifXfF8k75A9105cBnNiMZOe1tXiqYc/exCgWvbggurzDOcRkZu
32
- /YSusaiDXHKU2O3Akc3htA==
27
+ TuL1Bzl6TBs1YEzEubFHb9XAPgehWzzUudjDKzTRd+uyZmxnomBqTCQjT5ucNRph
28
+ 3jZ6bhLNooLQxTjIuHodeGcEMHZdt4Yi7SyPmw5Nry12z6wrDp+5aGps3HsE5WsQ
29
+ Zq2EuyEOc96g31uoIvjNdieKs+1kE+K+dJDjtw+wTH2i63P7r6N/NfPPXpxsFquo
30
+ wcYRRrHdR7GhdJeT+V8Q8Bi5bglCUGdx+8scMgkkePc98k9osQHypbACmzO+Bqkv
31
+ c7ZKPJcWBv0sm81+FCZXNACn2f9jfF8OQinxVs0O052KbGuEQaaiGIYeuuwQE2q6
32
+ ggcrPfcYeTwWlfZPu2LrBg==
33
33
  -----END CERTIFICATE-----
34
- date: 2014-02-05 00:00:00.000000000 Z
34
+ date: 2014-06-06 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: configurability
@@ -193,56 +193,56 @@ dependencies:
193
193
  requirements:
194
194
  - - ~>
195
195
  - !ruby/object:Gem::Version
196
- version: 1.4.0
196
+ version: '1.4'
197
197
  type: :development
198
198
  prerelease: false
199
199
  version_requirements: !ruby/object:Gem::Requirement
200
200
  requirements:
201
201
  - - ~>
202
202
  - !ruby/object:Gem::Version
203
- version: 1.4.0
203
+ version: '1.4'
204
204
  - !ruby/object:Gem::Dependency
205
- name: hoe-highline
205
+ name: hoe-deveiate
206
206
  requirement: !ruby/object:Gem::Requirement
207
207
  requirements:
208
208
  - - ~>
209
209
  - !ruby/object:Gem::Version
210
- version: 0.1.0
210
+ version: '0.6'
211
211
  type: :development
212
212
  prerelease: false
213
213
  version_requirements: !ruby/object:Gem::Requirement
214
214
  requirements:
215
215
  - - ~>
216
216
  - !ruby/object:Gem::Version
217
- version: 0.1.0
217
+ version: '0.6'
218
218
  - !ruby/object:Gem::Dependency
219
- name: rdoc
219
+ name: hoe-highline
220
220
  requirement: !ruby/object:Gem::Requirement
221
221
  requirements:
222
222
  - - ~>
223
223
  - !ruby/object:Gem::Version
224
- version: '4.0'
224
+ version: '0.2'
225
225
  type: :development
226
226
  prerelease: false
227
227
  version_requirements: !ruby/object:Gem::Requirement
228
228
  requirements:
229
229
  - - ~>
230
230
  - !ruby/object:Gem::Version
231
- version: '4.0'
231
+ version: '0.2'
232
232
  - !ruby/object:Gem::Dependency
233
- name: hoe-deveiate
233
+ name: rdoc
234
234
  requirement: !ruby/object:Gem::Requirement
235
235
  requirements:
236
236
  - - ~>
237
237
  - !ruby/object:Gem::Version
238
- version: '0.3'
238
+ version: '4.0'
239
239
  type: :development
240
240
  prerelease: false
241
241
  version_requirements: !ruby/object:Gem::Requirement
242
242
  requirements:
243
243
  - - ~>
244
244
  - !ruby/object:Gem::Version
245
- version: '0.3'
245
+ version: '4.0'
246
246
  - !ruby/object:Gem::Dependency
247
247
  name: hoe-bundler
248
248
  requirement: !ruby/object:Gem::Requirement
@@ -263,14 +263,14 @@ dependencies:
263
263
  requirements:
264
264
  - - ~>
265
265
  - !ruby/object:Gem::Version
266
- version: 2.99.0.beta1
266
+ version: '3.0'
267
267
  type: :development
268
268
  prerelease: false
269
269
  version_requirements: !ruby/object:Gem::Requirement
270
270
  requirements:
271
271
  - - ~>
272
272
  - !ruby/object:Gem::Version
273
- version: 2.99.0.beta1
273
+ version: '3.0'
274
274
  - !ruby/object:Gem::Dependency
275
275
  name: simplecov
276
276
  requirement: !ruby/object:Gem::Requirement
@@ -305,14 +305,14 @@ dependencies:
305
305
  requirements:
306
306
  - - ~>
307
307
  - !ruby/object:Gem::Version
308
- version: '3.8'
308
+ version: '3.12'
309
309
  type: :development
310
310
  prerelease: false
311
311
  version_requirements: !ruby/object:Gem::Requirement
312
312
  requirements:
313
313
  - - ~>
314
314
  - !ruby/object:Gem::Version
315
- version: '3.8'
315
+ version: '3.12'
316
316
  description: |-
317
317
  Strelka is a framework for creating and deploying
318
318
  Mongrel2[http://mongrel2.org/] web applications in Ruby.
@@ -496,8 +496,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
496
496
  - !ruby/object:Gem::Version
497
497
  version: '0'
498
498
  requirements: []
499
- rubyforge_project: strelka
500
- rubygems_version: 2.2.1
499
+ rubyforge_project:
500
+ rubygems_version: 2.2.2
501
501
  signing_key:
502
502
  specification_version: 4
503
503
  summary: Strelka is a framework for creating and deploying Mongrel2[http://mongrel2.org/]
metadata.gz.sig CHANGED
Binary file