strelka 0.8.0 → 0.9.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 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