hoodoo 2.12.6 → 2.12.9
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
- data/lib/hoodoo/client/headers.rb +7 -0
- data/lib/hoodoo/communicators/pool.rb +12 -4
- data/lib/hoodoo/presenters/base_dsl.rb +1 -1
- data/lib/hoodoo/services/discovery/discoverers/by_drb/drb_server.rb +4 -9
- data/lib/hoodoo/version.rb +2 -2
- data/spec/client/client_spec.rb +2 -0
- data/spec/presenters/types/array_spec.rb +5 -5
- data/spec/presenters/types/hash_spec.rb +4 -4
- metadata +67 -81
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0c41b4724b4099c1c867eed75c74ec8291fe85bc8987a4b8960d229f64d7fe5
|
4
|
+
data.tar.gz: d3a526e9b9a9f301588a3f8be9dbb65b5fc0fee3b3e8088b368a775ac6e50af2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 329c3cf991d235337a424362ae8a7190822a6a762cfa36c9e0292a09201757e3d1aee7f933c4f8e1b456639a0820d9882dbcbc05ec86dfff4b824bf52afdee94
|
7
|
+
data.tar.gz: 7002b2b20e888876cfe1b9d716f0aa00f9976b65373bee93b36810dfa9da0b0747083e85aa7e7cc77fbd0a0cc515683d994ee09a4d7b4f7895707cf6ac1ccc76
|
@@ -211,6 +211,13 @@ module Hoodoo
|
|
211
211
|
:header => 'X-Deja-Vu',
|
212
212
|
:header_proc => BOOLEAN_HEADER_PROC,
|
213
213
|
},
|
214
|
+
|
215
|
+
'HTTP_X_DISABLE_DOWNSTREAM_SYNC' => {
|
216
|
+
:property => :disable_downstream_sync,
|
217
|
+
:property_proc => BOOLEAN_PROPERTY_PROC,
|
218
|
+
:header => 'X-Disable-Downstream-Sync',
|
219
|
+
:header_proc => BOOLEAN_HEADER_PROC,
|
220
|
+
},
|
214
221
|
}
|
215
222
|
|
216
223
|
# For speed, fill in a "property_writer" value, where "foo" becomes
|
@@ -9,6 +9,8 @@
|
|
9
9
|
# 15-Dec-2014 (ADH): Created.
|
10
10
|
########################################################################
|
11
11
|
|
12
|
+
require 'pp'
|
13
|
+
|
12
14
|
module Hoodoo
|
13
15
|
module Communicators
|
14
16
|
|
@@ -151,7 +153,7 @@ module Hoodoo
|
|
151
153
|
begin
|
152
154
|
communicator.communicate( object )
|
153
155
|
rescue => exception
|
154
|
-
handle_exception( exception, communicator )
|
156
|
+
handle_exception( exception, communicator, object )
|
155
157
|
end
|
156
158
|
|
157
159
|
else
|
@@ -333,6 +335,7 @@ module Hoodoo
|
|
333
335
|
#
|
334
336
|
loop do
|
335
337
|
|
338
|
+
obj = nil
|
336
339
|
# Exception handler block.
|
337
340
|
#
|
338
341
|
begin
|
@@ -342,20 +345,23 @@ module Hoodoo
|
|
342
345
|
#
|
343
346
|
loop do
|
344
347
|
entry = work_queue.shift() # ".shift" => FIFO, ".pop" would be LIFO
|
348
|
+
obj = nil
|
345
349
|
|
346
350
|
if entry.terminate?
|
347
351
|
::Thread.exit
|
348
352
|
elsif entry.sync?
|
353
|
+
|
349
354
|
sync_queue << :sync
|
350
355
|
elsif entry.dropped?
|
351
356
|
communicator.dropped( entry.dropped )
|
352
357
|
else
|
358
|
+
obj = entry.payload
|
353
359
|
communicator.communicate( entry.payload )
|
354
360
|
end
|
355
361
|
end
|
356
362
|
|
357
363
|
rescue => exception
|
358
|
-
handle_exception( exception, communicator )
|
364
|
+
handle_exception( exception, communicator, obj )
|
359
365
|
|
360
366
|
end
|
361
367
|
end
|
@@ -453,12 +459,14 @@ module Hoodoo
|
|
453
459
|
#
|
454
460
|
# +exception+:: Exception (or Exception subclass) instance to print.
|
455
461
|
# +communicator+:: Communicator instance that raised the exception.
|
462
|
+
# +obj+:: Parameter passed to the communicator subclass instance
|
463
|
+
# #communicate methods
|
456
464
|
#
|
457
|
-
def handle_exception( exception, communicator )
|
465
|
+
def handle_exception( exception, communicator, obj )
|
458
466
|
begin
|
459
467
|
report = "Communicator class #{ communicator.class.name } raised exception '#{ exception }': #{ exception.backtrace }"
|
460
468
|
$stderr.puts( report )
|
461
|
-
|
469
|
+
pp( obj, $stderr )
|
462
470
|
rescue
|
463
471
|
# If the above fails then everything else is probably about to
|
464
472
|
# collapse, but optimistically try to ignore the error and keep
|
@@ -58,21 +58,16 @@ module Hoodoo; module Services; class Discovery # Just used as a namespace here
|
|
58
58
|
# server is already running, expect an "address in use" connection
|
59
59
|
# exception from DRb.
|
60
60
|
#
|
61
|
-
# $SAFE will be set to 1 (unless it is already higher) in this thread.
|
62
|
-
#
|
63
61
|
# +port+:: Passed to ::uri method.
|
64
62
|
#
|
65
63
|
def self.start( port = nil )
|
66
64
|
|
67
65
|
uri = self.uri( port )
|
68
66
|
|
69
|
-
#
|
70
|
-
#
|
71
|
-
#
|
72
|
-
|
73
|
-
# http://blog.recurity-labs.com/archives/2011/05/12/druby_for_penetration_testers/
|
74
|
-
|
75
|
-
$SAFE = 1
|
67
|
+
# $SAFE and taint tracking is being removed from ruby 2.7+
|
68
|
+
# https://bugs.ruby-lang.org/issues/16131
|
69
|
+
# Set to 0 to disable taint tracking in earlier versions
|
70
|
+
$SAFE = 0
|
76
71
|
|
77
72
|
# Have to allow a tained port string from "outside" just to be able
|
78
73
|
# to start the service on a given port; so untaint that deliberately.
|
data/lib/hoodoo/version.rb
CHANGED
@@ -12,11 +12,11 @@ module Hoodoo
|
|
12
12
|
# The Hoodoo gem version. If this changes, be sure to re-run
|
13
13
|
# <tt>bundle install</tt> or <tt>bundle update</tt>.
|
14
14
|
#
|
15
|
-
VERSION = '2.12.
|
15
|
+
VERSION = '2.12.9'
|
16
16
|
|
17
17
|
# The Hoodoo gem date. If this changes, be sure to re-run
|
18
18
|
# <tt>bundle install</tt> or <tt>bundle update</tt>.
|
19
19
|
#
|
20
|
-
DATE = '
|
20
|
+
DATE = '2021-09-07'
|
21
21
|
|
22
22
|
end
|
data/spec/client/client_spec.rb
CHANGED
@@ -654,6 +654,8 @@ describe Hoodoo::Client do
|
|
654
654
|
@dated_from = Time.now - 2.years
|
655
655
|
when :deja_vu
|
656
656
|
@deja_vu = true
|
657
|
+
when :disable_downstream_sync
|
658
|
+
@disable_downstream_sync = true
|
657
659
|
else
|
658
660
|
raise "Update client_spec.rb with new non-secured properties for test"
|
659
661
|
end
|
@@ -274,9 +274,9 @@ describe Hoodoo::Presenters::Array do
|
|
274
274
|
'boolean' => { :valid => [ true ], :invalid => [ 4.51, 'false' ] },
|
275
275
|
'date' => { :valid => [ Date.today.iso8601 ], :invalid => [ Date.today, '23rd January 2041' ] },
|
276
276
|
'date_time' => { :valid => [ DateTime.now.iso8601 ], :invalid => [ DateTime.now, '2017-01-27 12:00' ] },
|
277
|
-
'decimal' => { :valid => [ '4.51' ], :invalid => [ 4.51, BigDecimal
|
277
|
+
'decimal' => { :valid => [ '4.51' ], :invalid => [ 4.51, BigDecimal( '4.51' ) ] },
|
278
278
|
'enum' => { :valid => [ 'one' ], :invalid => [ 'One', 1 ] },
|
279
|
-
'float' => { :valid => [ 4.51 ], :invalid => [ BigDecimal
|
279
|
+
'float' => { :valid => [ 4.51 ], :invalid => [ BigDecimal(4.51, 2), '4.51' ] },
|
280
280
|
'integer' => { :valid => [ 4 ], :invalid => [ '4' ] },
|
281
281
|
'string' => { :valid => [ 'four' ], :invalid => [ 'toolong', 4, true ] },
|
282
282
|
'tags' => { :valid => [ 'tag_a,tag_b,tag_c' ], :invalid => [ 4, true ] },
|
@@ -446,9 +446,9 @@ describe Hoodoo::Presenters::Array do
|
|
446
446
|
let( :valid_data ) do
|
447
447
|
{
|
448
448
|
'numbers' => [
|
449
|
-
BigDecimal
|
450
|
-
BigDecimal
|
451
|
-
BigDecimal
|
449
|
+
BigDecimal( '42.55111' ), # Precision is FYI data generators, not the renderer :-/
|
450
|
+
BigDecimal( '42.4' ),
|
451
|
+
BigDecimal( '42' )
|
452
452
|
]
|
453
453
|
}
|
454
454
|
end
|
@@ -598,9 +598,9 @@ describe Hoodoo::Presenters::Hash do
|
|
598
598
|
'boolean' => { :valid => [ true ], :invalid => [ 4.51, 'false' ] },
|
599
599
|
'date' => { :valid => [ Date.today.iso8601 ], :invalid => [ Date.today, '23rd January 2041' ] },
|
600
600
|
'date_time' => { :valid => [ DateTime.now.iso8601 ], :invalid => [ DateTime.now, '2017-01-27 12:00' ] },
|
601
|
-
'decimal' => { :valid => [ '4.51' ], :invalid => [ 4.51, BigDecimal
|
601
|
+
'decimal' => { :valid => [ '4.51' ], :invalid => [ 4.51, BigDecimal( '4.51' ) ] },
|
602
602
|
'enum' => { :valid => [ 'one' ], :invalid => [ 'One', 1 ] },
|
603
|
-
'float' => { :valid => [ 4.51 ], :invalid => [ BigDecimal
|
603
|
+
'float' => { :valid => [ 4.51 ], :invalid => [ BigDecimal(4.51, 2), '4.51' ] },
|
604
604
|
'integer' => { :valid => [ 4 ], :invalid => [ '4' ] },
|
605
605
|
'string' => { :valid => [ 'four' ], :invalid => [ 'toolong', 4, true ] },
|
606
606
|
'tags' => { :valid => [ 'tag_a,tag_b,tag_c' ], :invalid => [ 4, true ] },
|
@@ -1254,9 +1254,9 @@ describe Hoodoo::Presenters::Hash do
|
|
1254
1254
|
'boolean' => { :definition => { :length => 9, :type => :boolean }, :valid => [ true ], :invalid => [ 4.51, 'false' ] },
|
1255
1255
|
'date' => { :definition => { :length => 9, :type => :date }, :valid => [ Date.today.iso8601 ], :invalid => [ Date.today, '23rd January 2041' ] },
|
1256
1256
|
'date_time' => { :definition => { :length => 9, :type => :date_time }, :valid => [ DateTime.now.iso8601 ], :invalid => [ DateTime.now, '2017-01-27 12:00' ] },
|
1257
|
-
'decimal' => { :definition => { :length => 9, :type => :decimal, :field_precision => 2 }, :valid => [ '4.51' ], :invalid => [ 4.51, BigDecimal
|
1257
|
+
'decimal' => { :definition => { :length => 9, :type => :decimal, :field_precision => 2 }, :valid => [ '4.51' ], :invalid => [ 4.51, BigDecimal( '4.51' ) ] },
|
1258
1258
|
'enum' => { :definition => { :length => 9, :type => :enum, :field_from => [ :one, :two, :three ] }, :valid => [ 'one' ], :invalid => [ 'One', 1 ] },
|
1259
|
-
'float' => { :definition => { :length => 9, :type => :float }, :valid => [ 4.51 ], :invalid => [ BigDecimal
|
1259
|
+
'float' => { :definition => { :length => 9, :type => :float }, :valid => [ 4.51 ], :invalid => [ BigDecimal(4.51, 2), '4.51' ] },
|
1260
1260
|
'integer' => { :definition => { :length => 9, :type => :integer }, :valid => [ 4 ], :invalid => [ '4' ] },
|
1261
1261
|
'string' => { :definition => { :length => 9, :type => :string, :field_length => 4 }, :valid => [ 'four' ], :invalid => [ 'toolong', 4, true ] },
|
1262
1262
|
'tags' => { :definition => { :length => 9, :type => :tags }, :valid => [ 'tag_a,tag_b,tag_c' ], :invalid => [ 4, true ] },
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hoodoo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.12.
|
4
|
+
version: 2.12.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Loyalty New Zealand
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-09-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: rack
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: dalli
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,13 +25,13 @@ dependencies:
|
|
39
25
|
- !ruby/object:Gem::Version
|
40
26
|
version: '2.7'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
28
|
+
name: rack
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
44
30
|
requirements:
|
45
31
|
- - ">="
|
46
32
|
- !ruby/object:Gem::Version
|
47
33
|
version: '0'
|
48
|
-
type: :
|
34
|
+
type: :runtime
|
49
35
|
prerelease: false
|
50
36
|
version_requirements: !ruby/object:Gem::Requirement
|
51
37
|
requirements:
|
@@ -53,271 +39,271 @@ dependencies:
|
|
53
39
|
- !ruby/object:Gem::Version
|
54
40
|
version: '0'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
42
|
+
name: activerecord
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
58
44
|
requirements:
|
59
45
|
- - "~>"
|
60
46
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
47
|
+
version: 5.2.4.3
|
62
48
|
type: :development
|
63
49
|
prerelease: false
|
64
50
|
version_requirements: !ruby/object:Gem::Requirement
|
65
51
|
requirements:
|
66
52
|
- - "~>"
|
67
53
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
54
|
+
version: 5.2.4.3
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
56
|
+
name: activesupport
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
59
|
- - "~>"
|
74
60
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
61
|
+
version: 5.2.4.3
|
76
62
|
type: :development
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
66
|
- - "~>"
|
81
67
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
68
|
+
version: 5.2.4.3
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
70
|
+
name: airbrake
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
73
|
- - "~>"
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
75
|
+
version: '7.3'
|
90
76
|
type: :development
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
80
|
- - "~>"
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
82
|
+
version: '7.3'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
84
|
+
name: airbrake-ruby
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
100
86
|
requirements:
|
101
87
|
- - "~>"
|
102
88
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
89
|
+
version: '2.11'
|
104
90
|
type: :development
|
105
91
|
prerelease: false
|
106
92
|
version_requirements: !ruby/object:Gem::Requirement
|
107
93
|
requirements:
|
108
94
|
- - "~>"
|
109
95
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
96
|
+
version: '2.11'
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
98
|
+
name: alchemy-flux
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - '='
|
116
102
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
103
|
+
version: 1.2.1
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
107
|
requirements:
|
122
|
-
- -
|
108
|
+
- - '='
|
123
109
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
110
|
+
version: 1.2.1
|
125
111
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
112
|
+
name: bundle-audit
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
128
114
|
requirements:
|
129
|
-
- -
|
115
|
+
- - ">="
|
130
116
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
117
|
+
version: '0'
|
132
118
|
type: :development
|
133
119
|
prerelease: false
|
134
120
|
version_requirements: !ruby/object:Gem::Requirement
|
135
121
|
requirements:
|
136
|
-
- -
|
122
|
+
- - ">="
|
137
123
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
124
|
+
version: '0'
|
139
125
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
126
|
+
name: byebug
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
142
128
|
requirements:
|
143
129
|
- - "~>"
|
144
130
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
131
|
+
version: '10.0'
|
146
132
|
type: :development
|
147
133
|
prerelease: false
|
148
134
|
version_requirements: !ruby/object:Gem::Requirement
|
149
135
|
requirements:
|
150
136
|
- - "~>"
|
151
137
|
- !ruby/object:Gem::Version
|
152
|
-
version: '
|
138
|
+
version: '10.0'
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
140
|
+
name: database_cleaner
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
156
142
|
requirements:
|
157
143
|
- - "~>"
|
158
144
|
- !ruby/object:Gem::Version
|
159
|
-
version: '
|
145
|
+
version: '1.7'
|
160
146
|
type: :development
|
161
147
|
prerelease: false
|
162
148
|
version_requirements: !ruby/object:Gem::Requirement
|
163
149
|
requirements:
|
164
150
|
- - "~>"
|
165
151
|
- !ruby/object:Gem::Version
|
166
|
-
version: '
|
152
|
+
version: '1.7'
|
167
153
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
154
|
+
name: le
|
169
155
|
requirement: !ruby/object:Gem::Requirement
|
170
156
|
requirements:
|
171
157
|
- - "~>"
|
172
158
|
- !ruby/object:Gem::Version
|
173
|
-
version: '
|
159
|
+
version: '2.7'
|
174
160
|
type: :development
|
175
161
|
prerelease: false
|
176
162
|
version_requirements: !ruby/object:Gem::Requirement
|
177
163
|
requirements:
|
178
164
|
- - "~>"
|
179
165
|
- !ruby/object:Gem::Version
|
180
|
-
version: '
|
166
|
+
version: '2.7'
|
181
167
|
- !ruby/object:Gem::Dependency
|
182
|
-
name:
|
168
|
+
name: pg
|
183
169
|
requirement: !ruby/object:Gem::Requirement
|
184
170
|
requirements:
|
185
171
|
- - "~>"
|
186
172
|
- !ruby/object:Gem::Version
|
187
|
-
version:
|
173
|
+
version: '1.0'
|
188
174
|
type: :development
|
189
175
|
prerelease: false
|
190
176
|
version_requirements: !ruby/object:Gem::Requirement
|
191
177
|
requirements:
|
192
178
|
- - "~>"
|
193
179
|
- !ruby/object:Gem::Version
|
194
|
-
version:
|
180
|
+
version: '1.0'
|
195
181
|
- !ruby/object:Gem::Dependency
|
196
|
-
name:
|
182
|
+
name: rack-test
|
197
183
|
requirement: !ruby/object:Gem::Requirement
|
198
184
|
requirements:
|
199
185
|
- - "~>"
|
200
186
|
- !ruby/object:Gem::Version
|
201
|
-
version:
|
187
|
+
version: '1.1'
|
202
188
|
type: :development
|
203
189
|
prerelease: false
|
204
190
|
version_requirements: !ruby/object:Gem::Requirement
|
205
191
|
requirements:
|
206
192
|
- - "~>"
|
207
193
|
- !ruby/object:Gem::Version
|
208
|
-
version:
|
194
|
+
version: '1.1'
|
209
195
|
- !ruby/object:Gem::Dependency
|
210
|
-
name:
|
196
|
+
name: rake
|
211
197
|
requirement: !ruby/object:Gem::Requirement
|
212
198
|
requirements:
|
213
199
|
- - "~>"
|
214
200
|
- !ruby/object:Gem::Version
|
215
|
-
version: '
|
201
|
+
version: '12.0'
|
216
202
|
type: :development
|
217
203
|
prerelease: false
|
218
204
|
version_requirements: !ruby/object:Gem::Requirement
|
219
205
|
requirements:
|
220
206
|
- - "~>"
|
221
207
|
- !ruby/object:Gem::Version
|
222
|
-
version: '
|
208
|
+
version: '12.0'
|
223
209
|
- !ruby/object:Gem::Dependency
|
224
|
-
name:
|
210
|
+
name: raygun4ruby
|
225
211
|
requirement: !ruby/object:Gem::Requirement
|
226
212
|
requirements:
|
227
213
|
- - "~>"
|
228
214
|
- !ruby/object:Gem::Version
|
229
|
-
version: '
|
215
|
+
version: '2.7'
|
230
216
|
type: :development
|
231
217
|
prerelease: false
|
232
218
|
version_requirements: !ruby/object:Gem::Requirement
|
233
219
|
requirements:
|
234
220
|
- - "~>"
|
235
221
|
- !ruby/object:Gem::Version
|
236
|
-
version: '
|
222
|
+
version: '2.7'
|
237
223
|
- !ruby/object:Gem::Dependency
|
238
|
-
name:
|
224
|
+
name: redis
|
239
225
|
requirement: !ruby/object:Gem::Requirement
|
240
226
|
requirements:
|
241
227
|
- - "~>"
|
242
228
|
- !ruby/object:Gem::Version
|
243
|
-
version: '
|
229
|
+
version: '4.0'
|
244
230
|
type: :development
|
245
231
|
prerelease: false
|
246
232
|
version_requirements: !ruby/object:Gem::Requirement
|
247
233
|
requirements:
|
248
234
|
- - "~>"
|
249
235
|
- !ruby/object:Gem::Version
|
250
|
-
version: '
|
236
|
+
version: '4.0'
|
251
237
|
- !ruby/object:Gem::Dependency
|
252
|
-
name:
|
238
|
+
name: rspec
|
253
239
|
requirement: !ruby/object:Gem::Requirement
|
254
240
|
requirements:
|
255
241
|
- - "~>"
|
256
242
|
- !ruby/object:Gem::Version
|
257
|
-
version: '
|
243
|
+
version: '3.8'
|
258
244
|
type: :development
|
259
245
|
prerelease: false
|
260
246
|
version_requirements: !ruby/object:Gem::Requirement
|
261
247
|
requirements:
|
262
248
|
- - "~>"
|
263
249
|
- !ruby/object:Gem::Version
|
264
|
-
version: '
|
250
|
+
version: '3.8'
|
265
251
|
- !ruby/object:Gem::Dependency
|
266
|
-
name:
|
252
|
+
name: rspec-mocks
|
267
253
|
requirement: !ruby/object:Gem::Requirement
|
268
254
|
requirements:
|
269
255
|
- - "~>"
|
270
256
|
- !ruby/object:Gem::Version
|
271
|
-
version: '
|
257
|
+
version: '3.8'
|
272
258
|
type: :development
|
273
259
|
prerelease: false
|
274
260
|
version_requirements: !ruby/object:Gem::Requirement
|
275
261
|
requirements:
|
276
262
|
- - "~>"
|
277
263
|
- !ruby/object:Gem::Version
|
278
|
-
version: '
|
264
|
+
version: '3.8'
|
279
265
|
- !ruby/object:Gem::Dependency
|
280
|
-
name:
|
266
|
+
name: simplecov-rcov
|
281
267
|
requirement: !ruby/object:Gem::Requirement
|
282
268
|
requirements:
|
283
269
|
- - "~>"
|
284
270
|
- !ruby/object:Gem::Version
|
285
|
-
version: '2
|
271
|
+
version: '0.2'
|
286
272
|
type: :development
|
287
273
|
prerelease: false
|
288
274
|
version_requirements: !ruby/object:Gem::Requirement
|
289
275
|
requirements:
|
290
276
|
- - "~>"
|
291
277
|
- !ruby/object:Gem::Version
|
292
|
-
version: '2
|
278
|
+
version: '0.2'
|
293
279
|
- !ruby/object:Gem::Dependency
|
294
|
-
name:
|
280
|
+
name: timecop
|
295
281
|
requirement: !ruby/object:Gem::Requirement
|
296
282
|
requirements:
|
297
283
|
- - "~>"
|
298
284
|
- !ruby/object:Gem::Version
|
299
|
-
version: '
|
285
|
+
version: '0.9'
|
300
286
|
type: :development
|
301
287
|
prerelease: false
|
302
288
|
version_requirements: !ruby/object:Gem::Requirement
|
303
289
|
requirements:
|
304
290
|
- - "~>"
|
305
291
|
- !ruby/object:Gem::Version
|
306
|
-
version: '
|
292
|
+
version: '0.9'
|
307
293
|
- !ruby/object:Gem::Dependency
|
308
|
-
name:
|
294
|
+
name: webmock
|
309
295
|
requirement: !ruby/object:Gem::Requirement
|
310
296
|
requirements:
|
311
297
|
- - "~>"
|
312
298
|
- !ruby/object:Gem::Version
|
313
|
-
version: '
|
299
|
+
version: '3.4'
|
314
300
|
type: :development
|
315
301
|
prerelease: false
|
316
302
|
version_requirements: !ruby/object:Gem::Requirement
|
317
303
|
requirements:
|
318
304
|
- - "~>"
|
319
305
|
- !ruby/object:Gem::Version
|
320
|
-
version: '
|
306
|
+
version: '3.4'
|
321
307
|
description: Simplify the implementation of consistent services within an API-based
|
322
308
|
software platform.
|
323
309
|
email:
|
@@ -591,14 +577,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
591
577
|
requirements:
|
592
578
|
- - ">="
|
593
579
|
- !ruby/object:Gem::Version
|
594
|
-
version: 2.
|
580
|
+
version: 2.3.5
|
595
581
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
596
582
|
requirements:
|
597
583
|
- - ">="
|
598
584
|
- !ruby/object:Gem::Version
|
599
585
|
version: '0'
|
600
586
|
requirements: []
|
601
|
-
rubygems_version: 3.
|
587
|
+
rubygems_version: 3.2.27
|
602
588
|
signing_key:
|
603
589
|
specification_version: 4
|
604
590
|
summary: Opinionated APIs
|