strelka 0.16.0 → 0.17.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 +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
|