strelka 0.16.0 → 0.17.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/ChangeLog +86 -2
- data/History.rdoc +13 -1
- data/lib/strelka.rb +1 -1
- data/lib/strelka/app/auth.rb +10 -10
- data/lib/strelka/authprovider.rb +3 -1
- data/lib/strelka/command/start.rb +23 -1
- data/lib/strelka/constants.rb +1 -0
- data/lib/strelka/httpresponse/negotiation.rb +8 -4
- data/lib/strelka/testing.rb +23 -25
- data/spec/helpers.rb +1 -9
- data/spec/strelka/testing_spec.rb +9 -36
- metadata +26 -26
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a69b39669c90e69f7ea690787d47981776c6a29044febf339d8890c240d6d1aa
|
4
|
+
data.tar.gz: 0bc16e15b5a1196a3944b99156eae5039eb8d9f7a5e71636974c41b7853f5fd2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb4c71d572c432b6a13a6b66ab4a1060c45f0d326bff9a4841579a30d2dd55b2782662252a28d22195bf228651aa5a8ea225295a846000f874a6c2cb38ab6c9e
|
7
|
+
data.tar.gz: 9ae69ea8b0aadd5ae2567084641f7114cbf99089e7394b5e7dcd8438145f8a92570820d2b2b5bb457bb3f859b3334b82f2923eb205dba9d35f19d39c168432bc
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/ChangeLog
CHANGED
@@ -1,8 +1,92 @@
|
|
1
|
+
2019-09-18 Mahlon E. Smith <mahlon@martini.nu>
|
2
|
+
|
3
|
+
@ * .hgsigs:
|
4
|
+
| Added signature for changeset cb93b1af991d
|
5
|
+
| [c030e3247c99] [tip]
|
6
|
+
|
|
7
|
+
o * .hgtags:
|
8
|
+
| Added tag v0.17.0 for changeset c212307d6550
|
9
|
+
| [cb93b1af991d]
|
10
|
+
|
|
11
|
+
o * History.rdoc, lib/strelka.rb:
|
12
|
+
| Update for release.
|
13
|
+
| [c212307d6550] [v0.17.0]
|
14
|
+
|
|
15
|
+
2019-09-18 Michael Granger <ged@FaerieMUD.org>
|
16
|
+
|
17
|
+
o * lib/strelka/httpresponse/negotiation.rb:
|
18
|
+
| Don't double-stringify negotiated response bodies
|
19
|
+
| [d12879aa565f]
|
20
|
+
|
|
21
|
+
o * lib/strelka/testing.rb, spec/strelka/testing_spec.rb:
|
22
|
+
| Remove references to `last_response`.
|
23
|
+
|
|
24
|
+
| This was an artifact of being written originally for Rake-Test,
|
25
|
+
| where the response is an implicit variable/method.
|
26
|
+
| [ba221bf72a44]
|
27
|
+
|
|
28
|
+
2019-09-11 Michael Granger <ged@FaerieMUD.org>
|
29
|
+
|
30
|
+
o * lib/strelka/authprovider.rb, lib/strelka/command/start.rb,
|
31
|
+
| lib/strelka/constants.rb, spec/helpers.rb:
|
32
|
+
| Add an --isolate switch to the start command
|
33
|
+
| [2f9c17865a66]
|
34
|
+
|
|
35
|
+
2019-09-05 Michael Granger <ged@FaerieMUD.org>
|
36
|
+
|
37
|
+
o * .build.yml:
|
38
|
+
| Fix the zmq package names in the build manifest
|
39
|
+
| [87dae6bd4ea1]
|
40
|
+
|
|
41
|
+
o * .build.yml:
|
42
|
+
| Add a build manifest
|
43
|
+
| [05bfca72174c]
|
44
|
+
|
|
45
|
+
o * Gemfile, gem.deps.rb:
|
46
|
+
| Change to Rubygems deps file
|
47
|
+
| [5102345959e9]
|
48
|
+
|
|
49
|
+
2019-08-30 Michael Granger <ged@FaerieMUD.org>
|
50
|
+
|
51
|
+
o * History.rdoc:
|
52
|
+
| Remove reference to removed strelka subcommand
|
53
|
+
| [2fca4022b8d1]
|
54
|
+
|
|
55
|
+
o * lib/strelka/app/auth.rb:
|
56
|
+
| par(1) some long documentation lines
|
57
|
+
| [7c01e3af1122]
|
58
|
+
|
|
59
|
+
2019-08-28 Mahlon E. Smith <mahlon@martini.nu>
|
60
|
+
|
61
|
+
o * cert/mahlon.pem, lib/strelka/command/start.rb:
|
62
|
+
| Add a means to run multiple handlers from the strelka launcher.
|
63
|
+
| [c6a7ae3b7060]
|
64
|
+
|
|
65
|
+
2019-08-23 Michael Granger <ged@FaerieMUD.org>
|
66
|
+
|
67
|
+
o * lib/strelka/testing.rb, strelka.gemspec:
|
68
|
+
| Add a missing require
|
69
|
+
| [9240a5fe9a3f]
|
70
|
+
|
|
71
|
+
2019-08-15 Michael Granger <ged@FaerieMUD.org>
|
72
|
+
|
73
|
+
o * .hgtags:
|
74
|
+
| Added tag v0.16.0 for changeset 7000eb609abe
|
75
|
+
| [84f0d95a2368]
|
76
|
+
|
|
77
|
+
o * .hgsigs:
|
78
|
+
| Added signature for changeset 32406f428655
|
79
|
+
| [7000eb609abe] [v0.16.0]
|
80
|
+
|
|
81
|
+
o * History.rdoc, lib/strelka.rb:
|
82
|
+
| Bump the minor version, update history.
|
83
|
+
| [32406f428655]
|
84
|
+
|
|
1
85
|
2019-08-10 Michael Granger <ged@FaerieMUD.org>
|
2
86
|
|
3
|
-
|
87
|
+
o * lib/strelka/testing.rb, spec/strelka/testing_spec.rb:
|
4
88
|
| Make the JSON matcher handle vendor subtypes
|
5
|
-
| [33bb8d8c2f70]
|
89
|
+
| [33bb8d8c2f70]
|
6
90
|
|
|
7
91
|
o * .hoerc, Manifest.txt, lib/strelka/app.rb, lib/strelka/testing.rb,
|
8
92
|
| spec/strelka/testing_spec.rb:
|
data/History.rdoc
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
== v0.17.0 [2019-09-18] Mahlon E. Smith <mahlon@martini.nu>
|
2
|
+
|
3
|
+
Enhancements:
|
4
|
+
|
5
|
+
- Add an 'isolate' switch to the start command
|
6
|
+
- Add a 'number' switch to the start command
|
7
|
+
|
8
|
+
|
9
|
+
Bugfixes:
|
10
|
+
|
11
|
+
- Don't double-stringify negotiated response bodies
|
12
|
+
|
13
|
+
|
1
14
|
== v0.16.0 [2019-08-10] Michael Granger <ged@FaerieMUD.org>
|
2
15
|
|
3
16
|
Enhancements:
|
@@ -5,7 +18,6 @@ Enhancements:
|
|
5
18
|
- Add spec matchers for matching JSON entity bodies
|
6
19
|
- Allow a block to be passed when loading a plugin
|
7
20
|
- Fix up to work under frozen-string-literals mode
|
8
|
-
- Add setup subcommand to bin/strelka
|
9
21
|
- Rewrite the WebSocketServer to be easier to use and offer some common facilities
|
10
22
|
for managing connections, broadcasting to them, etc.
|
11
23
|
- Update the restresources plugin for Sequel 5.0
|
data/lib/strelka.rb
CHANGED
data/lib/strelka/app/auth.rb
CHANGED
@@ -149,21 +149,21 @@ require 'strelka/authprovider'
|
|
149
149
|
#
|
150
150
|
# no_perms_for '/login'
|
151
151
|
#
|
152
|
-
# Incoming requests are matched against +require_perms_for+ patterns, and the union
|
153
|
-
#
|
154
|
-
#
|
152
|
+
# Incoming requests are matched against +require_perms_for+ patterns, and the union of all
|
153
|
+
# matching permissions is gathered, then any +no_auth_for+ patterns are used to remove permissions
|
154
|
+
# from that set.
|
155
155
|
#
|
156
156
|
# If no require_perms_for patterns are declared, authorization is not checked, unless there is
|
157
157
|
# at least one no_perms_for pattern, in which case all requests that don't match the negative
|
158
158
|
# patterns are checked (with the permission set to the ID of the app).
|
159
159
|
#
|
160
|
-
# Authorization will be checked once authentication has succeeded. It will be called with at least
|
161
|
-
# credentials object returned from the authentication stage and the request object. Some
|
162
|
-
# may opt to return authentication credentials as a User object of some kind (e.g.,
|
163
|
-
# LDAP entry, model object, etc.), but the simpler ones just return the login of
|
164
|
-
# +user+. The AuthProvider may also furnish additional useful arguments such as
|
165
|
-
# permission objects, etc. to your authorization block. See the documentation
|
166
|
-
# AuthProvider for details.
|
160
|
+
# Authorization will be checked once authentication has succeeded. It will be called with at least
|
161
|
+
# the credentials object returned from the authentication stage and the request object. Some
|
162
|
+
# AuthProviders may opt to return authentication credentials as a User object of some kind (e.g.,
|
163
|
+
# a database row, LDAP entry, model object, etc.), but the simpler ones just return the login of
|
164
|
+
# the authenticated +user+. The AuthProvider may also furnish additional useful arguments such as
|
165
|
+
# a database handle, permission objects, etc. to your authorization block. See the documentation
|
166
|
+
# for your chosen AuthProvider for details.
|
167
167
|
#
|
168
168
|
#
|
169
169
|
# == Customizing Failure
|
data/lib/strelka/authprovider.rb
CHANGED
@@ -32,9 +32,11 @@ class Strelka::AuthProvider
|
|
32
32
|
Pluggability,
|
33
33
|
Strelka::AbstractClass,
|
34
34
|
Strelka::Delegation
|
35
|
-
|
35
|
+
|
36
|
+
prepend Strelka::Constants,
|
36
37
|
Strelka::ResponseHelpers
|
37
38
|
|
39
|
+
|
38
40
|
# Loggability API -- set up logging under the 'strelka' log host
|
39
41
|
log_to :strelka
|
40
42
|
|
@@ -12,12 +12,29 @@ module Strelka::CLI::Start
|
|
12
12
|
desc 'Start a Strelka app'
|
13
13
|
arg :GEMNAME, :optional
|
14
14
|
arg :APPNAME
|
15
|
+
|
15
16
|
command :start do |cmd|
|
16
17
|
|
18
|
+
cmd.switch [:I, :isolate],
|
19
|
+
desc: "Run in a sandboxed environment",
|
20
|
+
long_desc: %{Run the app inside a sandbox using the Isolate gem. This is not
|
21
|
+
installed by default, so you'll need to ensure it's installed before
|
22
|
+
using this option.
|
23
|
+
},
|
24
|
+
negatable: false
|
25
|
+
cmd.flag [ :n, :number ],
|
26
|
+
desc: 'Spin up this many handlers via fork()',
|
27
|
+
default_value: 1,
|
28
|
+
type: Integer
|
29
|
+
|
17
30
|
cmd.action do |global, options, args|
|
18
31
|
appname = args.pop
|
19
32
|
gemname = args.pop
|
20
33
|
|
34
|
+
if options.isolate
|
35
|
+
require 'isolate/now'
|
36
|
+
end
|
37
|
+
|
21
38
|
gem( gemname ) if gemname
|
22
39
|
|
23
40
|
app = if File.exist?( appname )
|
@@ -31,7 +48,12 @@ module Strelka::CLI::Start
|
|
31
48
|
Strelka::CLI.prompt.say "Starting %s (%p)." % [ appname, app ]
|
32
49
|
Strelka.load_config( global.config ) if global.config
|
33
50
|
unless_dryrun( "starting the app" ) do
|
34
|
-
|
51
|
+
if options.number == 1
|
52
|
+
app.run
|
53
|
+
else
|
54
|
+
options.number.times { fork { app.run } }
|
55
|
+
Process.waitall
|
56
|
+
end
|
35
57
|
end
|
36
58
|
end
|
37
59
|
end
|
data/lib/strelka/constants.rb
CHANGED
@@ -361,11 +361,15 @@ module Strelka::HTTPResponse::Negotiation
|
|
361
361
|
end
|
362
362
|
|
363
363
|
self.log.debug " successfully transformed: %p! Setting up response." % [ new_body.class ]
|
364
|
-
|
365
|
-
|
366
|
-
|
364
|
+
unless new_body.is_a?( String )
|
365
|
+
stringifiers = Strelka::HTTPResponse::Negotiation.stringifiers
|
366
|
+
if stringifiers.key?( mimetype )
|
367
|
+
new_body = stringifiers[ mimetype ].call( new_body )
|
368
|
+
else
|
369
|
+
self.log.debug " no stringifier registered for %p" % [ mimetype ]
|
370
|
+
end
|
367
371
|
else
|
368
|
-
self.log.debug "
|
372
|
+
self.log.debug " body is already a String"
|
369
373
|
end
|
370
374
|
|
371
375
|
self.body = new_body
|
data/lib/strelka/testing.rb
CHANGED
@@ -7,6 +7,9 @@ require 'loggability'
|
|
7
7
|
require 'rspec'
|
8
8
|
require 'rspec/matchers'
|
9
9
|
|
10
|
+
require 'strelka' unless defined?( Strelka )
|
11
|
+
|
12
|
+
|
10
13
|
# A collection of testing functions and classes for use in Strelka handlers
|
11
14
|
# and libraries.
|
12
15
|
module Strelka::Testing
|
@@ -191,28 +194,28 @@ module Strelka::Testing
|
|
191
194
|
#
|
192
195
|
# Expect that the response consists of JSON of some sort:
|
193
196
|
#
|
194
|
-
# expect(
|
197
|
+
# expect( response ).to have_json_body
|
195
198
|
#
|
196
199
|
# Expect that it's a JSON body that deserializes as an Object:
|
197
200
|
#
|
198
|
-
# expect(
|
201
|
+
# expect( response ).to have_json_body( Object )
|
199
202
|
# # -or-
|
200
|
-
# expect(
|
203
|
+
# expect( response ).to have_json_body( Hash )
|
201
204
|
#
|
202
205
|
# Expect that it's a JSON body that deserializes as an Array:
|
203
206
|
#
|
204
|
-
# expect(
|
207
|
+
# expect( response ).to have_json_body( Array )
|
205
208
|
#
|
206
209
|
# Expect that it's a JSON body that deserializes as an Object that has
|
207
210
|
# expected keys:
|
208
211
|
#
|
209
|
-
# expect(
|
212
|
+
# expect( response ).to have_json_body( Object ).
|
210
213
|
# that_includes( :id, :first_name, :last_name )
|
211
214
|
#
|
212
215
|
# Expect that it's a JSON body that deserializes as an Object that has
|
213
216
|
# expected keys and values:
|
214
217
|
#
|
215
|
-
# expect(
|
218
|
+
# expect( response ).to have_json_body( Object ).
|
216
219
|
# that_includes(
|
217
220
|
# id: 118,
|
218
221
|
# first_name: 'Princess',
|
@@ -221,7 +224,7 @@ module Strelka::Testing
|
|
221
224
|
#
|
222
225
|
# Expect that it's a JSON body that has other expected stuff:
|
223
226
|
#
|
224
|
-
# expect(
|
227
|
+
# expect( response ).to have_json_body( Object ).
|
225
228
|
# that_includes(
|
226
229
|
# last_name: a_string_matching(/humperdink/i),
|
227
230
|
# profile: a_hash_including(:age, :eyecolor, :tracking_ability)
|
@@ -229,7 +232,7 @@ module Strelka::Testing
|
|
229
232
|
#
|
230
233
|
# Expect a JSON Array with objects that all match the criteria:
|
231
234
|
#
|
232
|
-
# expect(
|
235
|
+
# expect( response ).to have_json_body( Array ).
|
233
236
|
# of_lenth( 20 ).
|
234
237
|
# and( all( be_an(Integer) ) )
|
235
238
|
#
|
@@ -427,43 +430,43 @@ module Strelka::Testing
|
|
427
430
|
#
|
428
431
|
# Expect that the response is a JSON Array of Objects:
|
429
432
|
#
|
430
|
-
# expect(
|
433
|
+
# expect( response ).to have_json_collection
|
431
434
|
#
|
432
435
|
# Expect that there be 4 Objects in the collection:
|
433
436
|
#
|
434
|
-
# expect(
|
437
|
+
# expect( response ).to have_json_collection.of_length( 4 )
|
435
438
|
#
|
436
439
|
# Expect that the collection's objects each have an `id` field with the specified
|
437
440
|
# IDs:
|
438
441
|
#
|
439
|
-
# expect(
|
442
|
+
# expect( response ).to have_json_collection.with_ids( 3, 6, 11, 14 )
|
440
443
|
# # -or- with an Array of IDs (no need to splat them)
|
441
444
|
# ids = [3, 6, 11, 14]
|
442
|
-
# expect(
|
445
|
+
# expect( response ).to have_json_collection.with_ids( ids )
|
443
446
|
#
|
444
447
|
# Expect that the collection's objects have the same IDs as an Array of model
|
445
448
|
# objects (or other objects that respond to #pk):
|
446
449
|
#
|
447
450
|
# payments = payment_fixture_factory.take( 4 )
|
448
|
-
# expect(
|
451
|
+
# expect( response ).to have_json_collection.
|
449
452
|
# with_same_ids_as( payments )
|
450
453
|
#
|
451
454
|
# Expect that the collection's objects have the same IDs as an Array of Hashes with
|
452
455
|
# `:id` fields:
|
453
456
|
#
|
454
457
|
# payment_rows = payments_table.where( sender_id: 71524 ).all
|
455
|
-
# expect(
|
458
|
+
# expect( response ).to have_json_collection.
|
456
459
|
# with_same_ids_as( payment_rows )
|
457
460
|
#
|
458
461
|
# Expect that the collection's objects appear in the same order as the source Array:
|
459
462
|
#
|
460
463
|
# payments = payment_fixture_factory.take( 4 )
|
461
|
-
# expect(
|
464
|
+
# expect( response ).to have_json_collection.
|
462
465
|
# with_same_ids_as( payments ).in_same_order
|
463
466
|
#
|
464
467
|
# Add aggregate matchers for each object in the collection:
|
465
468
|
#
|
466
|
-
# expect(
|
469
|
+
# expect( response ).to have_json_collection.
|
467
470
|
# with_same_ids_as( payments ).
|
468
471
|
# and_all( include(amount_cents: a_value > 0) )
|
469
472
|
#
|
@@ -617,15 +620,10 @@ module Strelka::Testing
|
|
617
620
|
end
|
618
621
|
|
619
622
|
|
620
|
-
### Parse the body of the
|
621
|
-
def
|
622
|
-
|
623
|
-
|
624
|
-
expect( last_response ).to( matcher )
|
625
|
-
matcher
|
626
|
-
end
|
627
|
-
|
628
|
-
return @have_json_body_matcher.parsed_response_body
|
623
|
+
### Parse the body of the given +response+ and return it as a Ruby object.
|
624
|
+
def response_json_body( response )
|
625
|
+
response.body.rewind
|
626
|
+
Yajl::Parser.parse( response.body, check_utf8: true, symbolize_keys: true )
|
629
627
|
end
|
630
628
|
|
631
629
|
end # module Strelka::Testing
|
data/spec/helpers.rb
CHANGED
@@ -3,15 +3,7 @@
|
|
3
3
|
# frozen-string-literal: true
|
4
4
|
|
5
5
|
BEGIN {
|
6
|
-
|
7
|
-
basedir = Pathname.new( __FILE__ ).dirname.parent
|
8
|
-
|
9
|
-
srcdir = basedir.parent
|
10
|
-
mongrel2dir = srcdir + 'Mongrel2/lib'
|
11
|
-
|
12
|
-
$stderr.puts "Adding %s to the LOAD_PATH..." % [ mongrel2dir ]
|
13
|
-
$LOAD_PATH.unshift( mongrel2dir.to_s ) unless
|
14
|
-
!mongrel2dir.directory? || $LOAD_PATH.include?( mongrel2dir.to_s )
|
6
|
+
$LOAD_PATH.unshift( '../Mongrel2/lib' )
|
15
7
|
}
|
16
8
|
|
17
9
|
# SimpleCov test coverage reporting; enable this using the :coverage rake task
|
@@ -722,48 +722,21 @@ RSpec.describe( Strelka::Testing ) do
|
|
722
722
|
end
|
723
723
|
|
724
724
|
|
725
|
-
describe "
|
725
|
+
describe "response_json_body" do
|
726
726
|
|
727
727
|
let( :request ) { @request_factory.get('/v1/api') }
|
728
728
|
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
it "fails due to the have_json_body expectation first" do
|
736
|
-
expect {
|
737
|
-
expect( last_response_json_body[:title] ).to eq( 'Ethel the Aardvark' )
|
738
|
-
}.to fail_matching( /doesn't have a content-type/i )
|
739
|
-
end
|
740
|
-
|
729
|
+
let( :response ) do
|
730
|
+
response = request.response
|
731
|
+
response.content_type = 'application/json'
|
732
|
+
response.body = StringIO.new( '{"title":"Ethel the Aardvark"}' )
|
733
|
+
return response
|
741
734
|
end
|
742
735
|
|
743
736
|
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
response = request.response
|
748
|
-
response.content_type = 'application/json'
|
749
|
-
response.body = '{"title":"Ethel the Aardvark"}'
|
750
|
-
return response
|
751
|
-
end
|
752
|
-
|
753
|
-
|
754
|
-
it "returns the JSON body if the inner expectation passes" do
|
755
|
-
expect {
|
756
|
-
expect( last_response_json_body[:title] ).to eq( 'Ethel the Aardvark' )
|
757
|
-
}.to_not raise_error()
|
758
|
-
end
|
759
|
-
|
760
|
-
|
761
|
-
it "fails if the outer expectation fails" do
|
762
|
-
expect {
|
763
|
-
expect( last_response_json_body ).to be_empty
|
764
|
-
}.to fail_matching( /empty\?/ )
|
765
|
-
end
|
766
|
-
|
737
|
+
it "returns the JSON body as a Hash with Symbol keys" do
|
738
|
+
expect( response_json_body(response) ).to be_a( Hash ).
|
739
|
+
and( include(title: "Ethel the Aardvark") )
|
767
740
|
end
|
768
741
|
|
769
742
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: strelka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mahlon E. Smith
|
@@ -11,31 +11,31 @@ bindir: bin
|
|
11
11
|
cert_chain:
|
12
12
|
- |
|
13
13
|
-----BEGIN CERTIFICATE-----
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
14
|
+
MIIENDCCApygAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdtYWhs
|
15
|
+
b24vREM9bWFydGluaS9EQz1udTAeFw0xODEyMDkwMzMxNTJaFw0xOTEyMDkwMzMx
|
16
|
+
NTJaMCIxIDAeBgNVBAMMF21haGxvbi9EQz1tYXJ0aW5pL0RDPW51MIIBojANBgkq
|
17
|
+
hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3cz7ILM8n+Y5nvz7mVRVqE8LusWdT8NX
|
18
|
+
nlnETynDndenI+a2S3j22DR+U4ooGUjuCHE3iR1CVmTDGbxFfNRfmnC1AN9Hybat
|
19
|
+
ewW+onvMBye7yfO0bJB5vkqaW5vd35rzquOffgBtJMo7rPRu6pX8RkL34Wnew4J7
|
20
|
+
POooUcYbWSAO934HSCUC8wVm6b4v/ejVF1Lk44Dz45jtMqtR7KTAtpipdbTXAarO
|
21
|
+
HQy3eVes/0oTqhk4CP50r1KP09nUHTn2lzVaCN9vmNE/Jwe0AuQ9ImvZXPpCsMMl
|
22
|
+
V03/tuJ++48sVmOIusJkASPupXcdI6zqsjYw2vLMFtuYNskRSvwbn6Wm6x9hLWWj
|
23
|
+
IRp5FvHPORLRCHFizXRmXZ3PyFHqbv6m4yG0SyfMzOXPk3Hn5dqqmK+BFCihTZIN
|
24
|
+
fqpBmuxyNEE21fSO9ALLlWeW9ffg9Ye5Sc1n3yEyv8rPb9VDvi1B5N6xIcDFMNVs
|
25
|
+
RiCamNbET4Sq9VIYwYtcB1f6EataqFEhAgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYD
|
26
|
+
VR0PBAQDAgSwMB0GA1UdDgQWBBR8KtAhZIhe2uPQHCgU5HurIG7crTAcBgNVHREE
|
27
|
+
FTATgRFtYWhsb25AbWFydGluaS5udTAcBgNVHRIEFTATgRFtYWhsb25AbWFydGlu
|
28
|
+
aS5udTANBgkqhkiG9w0BAQsFAAOCAYEABMyF43FOfY+DULlLbR/S6k62DxsJn6dA
|
29
|
+
YE1DI0o/IGN9t6ga7iQT944HM3gg1AIsONBvFwU31/VLG3Pp91k6YVEQvZITKBOz
|
30
|
+
EVjhTfKBvoqWyuwMKCYn9ZtCASfZDFec7SMsgwIbKuncb6RKjH9cYauuDOtd55lC
|
31
|
+
pie+OmOF330StWH/Z/WY5WiRGstpL5/Qk0y4NMqcV/T59fNIVNxG4k5/VNgVYQIM
|
32
|
+
4Yrvx5tkYPIvPOroIGfDu6CfrQVNg4QJrQN2LZmXGoEV47v1kdV9kMAeFDBkTmPS
|
33
|
+
XqnsRK6X7WhFON8/7CliGvF+T8dmfGJS5R46x7FIzendFMA6pY4IknfGEabzyL9O
|
34
|
+
8IIu155/luqHPnzYLlRi4n+hzwkwGh9erCmbMqrsATqVf4C20H7EAOlDlhmNDqiV
|
35
|
+
g3nSb5geweeDxf7Phf3qyZgglWB4UGR0aUkzOwj6yFj1ugCU2R7CwNhqgmtdkvYm
|
36
|
+
tuLuv1oCfpuEmRh93FiLFsOLV3auiU+c
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2019-
|
38
|
+
date: 2019-09-18 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: configurability
|
@@ -496,7 +496,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
496
496
|
- !ruby/object:Gem::Version
|
497
497
|
version: '0'
|
498
498
|
requirements: []
|
499
|
-
rubygems_version: 3.0.
|
499
|
+
rubygems_version: 3.0.4
|
500
500
|
signing_key:
|
501
501
|
specification_version: 4
|
502
502
|
summary: Strelka is a framework for creating and deploying Mongrel2[http://mongrel2.org/]
|
metadata.gz.sig
CHANGED
Binary file
|