hoodoo 2.12.5 → 2.12.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 66a0023615774ce3301294c29a59a5b2f7a8309c395318768a107896e5c820b7
4
- data.tar.gz: be7903771796d3a114d2cf2280e21cef5f09e09abe95dcfb9f1109fefd5daf8d
3
+ metadata.gz: 4ceae57af765079949922ccb55d1d0d36a00e6718bc6768492cea86f882148ce
4
+ data.tar.gz: 62ef1ef323a92e35eef666d5a58674fd625a3d3914bf6d4a05a0c42c5537f338
5
5
  SHA512:
6
- metadata.gz: e76de3e7a6b0c2e54049504eac1e9db39c056e19fb7a2d0e66870a6c7e159b19eaf64a27ac1ac9eb76d6dc5dc7d1cf5d3c046647d71755e045fc4cef8a80ea2e
7
- data.tar.gz: 48e35803470ab2634e6c9186d06179d4f507ef7faeff752af3aab2c3dc5adc151dcb5519f34c675b3ca4f18833b8f221bb74f1af11bde227f5717ab3708e1469
6
+ metadata.gz: 10cf005c5277ed6f25f57e55c1aa9f2371ac625b2523c7c66baf28544c6fe6a1b31f88cb3f1435a42edc50426ff2dc11e497678e7ebb9514b9129611a887b7ad
7
+ data.tar.gz: fb6ce64f0cdd4c4833ce1aa04d57ae4646139ec53cdbc7d0f72f93d8df0f8c59d86ee266ef3165a22ded6bd684892e98612fef6fd6d1a0a96ca72eded8328af1
@@ -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
@@ -161,7 +161,7 @@ module Hoodoo
161
161
  # # E.g.:
162
162
  # #
163
163
  # # {
164
- # # "numbers" => [ BigDecimal.new( '2.2511' ) ]
164
+ # # "numbers" => [ BigDecimal( '2.2511' ) ]
165
165
  # # }
166
166
  #
167
167
  def array( name, options = {}, &block )
@@ -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
- # For security, "disable eval() and friends":
70
- #
71
- # http://www.ruby-doc.org/stdlib-2.2.3/libdoc/drb/rdoc/DRb.html
72
- # https://ruby-hacking-guide.github.io/security.html
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.
@@ -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.5'
15
+ VERSION = '2.12.8'
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 = '2020-01-10'
20
+ DATE = '2021-08-02'
21
21
 
22
22
  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.new( '4.51' ) ] },
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.new(4.51, 2), '4.51' ] },
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.new( '42.55111' ), # Precision is FYI data generators, not the renderer :-/
450
- BigDecimal.new( '42.4' ),
451
- BigDecimal.new( '42' )
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.new( '4.51' ) ] },
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.new(4.51, 2), '4.51' ] },
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.new( '4.51' ) ] },
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.new(4.51, 2), '4.51' ] },
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 ] },
@@ -160,7 +160,7 @@ describe Hoodoo::Services::Response do
160
160
  expected = JSON.generate({})
161
161
  expect(status).to eq(200)
162
162
  expect(headers).to eq({'Content-Length' => expected.length.to_s})
163
- expect(body.body).to eq([expected])
163
+ expect(body).to eq([expected])
164
164
  end
165
165
 
166
166
  it 'should return header data correctly' do
@@ -172,7 +172,7 @@ describe Hoodoo::Services::Response do
172
172
  expected = JSON.generate({})
173
173
  expect(status).to eq(200)
174
174
  expect(headers).to eq({'X-Foo' => 'baz', 'X-Bar' => 'boo', 'Content-Length' => expected.length.to_s})
175
- expect(body.body).to eq([expected])
175
+ expect(body).to eq([expected])
176
176
  end
177
177
 
178
178
  it 'should return error condition Rack data correctly' do
@@ -187,7 +187,7 @@ describe Hoodoo::Services::Response do
187
187
  expected = JSON.generate(errors_hash)
188
188
  expect(status).to eq(422) # From the first error we stored, not the second
189
189
  expect(headers).to eq({'Content-Length' => expected.length.to_s})
190
- expect(body.body).to eq([expected])
190
+ expect(body).to eq([expected])
191
191
  end
192
192
 
193
193
  it 'should return non-error condition Rack data correctly with a Hash body' do
@@ -199,7 +199,7 @@ describe Hoodoo::Services::Response do
199
199
  expected = JSON.generate(response_hash)
200
200
  expect(status).to eq(200) # From the first error we stored, not the second
201
201
  expect(headers).to eq({'Content-Length' => expected.length.to_s})
202
- expect(body.body).to eq([expected])
202
+ expect(body).to eq([expected])
203
203
  end
204
204
 
205
205
  it 'returns non-error condition Rack data correctly with an Array body' do
@@ -211,7 +211,7 @@ describe Hoodoo::Services::Response do
211
211
  expected = JSON.generate({'_data' => response_array})
212
212
  expect(status).to eq(200) # From the first error we stored, not the second
213
213
  expect(headers).to eq({'Content-Length' => expected.length.to_s})
214
- expect(body.body).to eq([expected])
214
+ expect(body).to eq([expected])
215
215
  end
216
216
 
217
217
  it 'returns non-error condition Rack data correctly with a dataset size' do
@@ -223,7 +223,7 @@ describe Hoodoo::Services::Response do
223
223
  expected = JSON.generate( { '_data' => response_array, '_dataset_size' => response_array.count } )
224
224
  expect( status ).to eq( 200 )
225
225
  expect( headers ).to eq( { 'Content-Length' => expected.length.to_s } )
226
- expect( body.body ).to eq( [ expected ] )
226
+ expect( body ).to eq( [ expected ] )
227
227
  end
228
228
 
229
229
  it 'returns non-error condition Rack data correctly with an estimated dataset size' do
@@ -235,7 +235,7 @@ describe Hoodoo::Services::Response do
235
235
  expected = JSON.generate( { '_data' => response_array, '_estimated_dataset_size' => response_array.count } )
236
236
  expect( status ).to eq( 200 )
237
237
  expect( headers ).to eq( { 'Content-Length' => expected.length.to_s } )
238
- expect( body.body ).to eq( [ expected ] )
238
+ expect( body ).to eq( [ expected ] )
239
239
  end
240
240
 
241
241
  it 'returns non-error condition Rack data correctly with both an accurate and an estimated dataset size' do
@@ -252,7 +252,7 @@ describe Hoodoo::Services::Response do
252
252
 
253
253
  expect( status ).to eq( 200 )
254
254
  expect( headers ).to eq( { 'Content-Length' => expected.length.to_s } )
255
- expect( body.body ).to eq( [ expected ] )
255
+ expect( body ).to eq( [ expected ] )
256
256
  end
257
257
 
258
258
  it 'should allow pre-encoded strings in the body' do
@@ -261,7 +261,7 @@ describe Hoodoo::Services::Response do
261
261
  status, headers, body = @r.for_rack
262
262
 
263
263
  expect(status).to eq(200)
264
- expect(body.body).to eq(['Hello World!'])
264
+ expect(body).to eq(['Hello World!'])
265
265
  end
266
266
 
267
267
  it 'should raise an exception when the body is in an unsupported format' do
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.5
4
+ version: 2.12.8
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: 2020-01-10 00:00:00.000000000 Z
11
+ date: 2021-08-02 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: bundle-audit
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: :development
34
+ type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
@@ -53,271 +39,285 @@ dependencies:
53
39
  - !ruby/object:Gem::Version
54
40
  version: '0'
55
41
  - !ruby/object:Gem::Dependency
56
- name: redis
42
+ name: activerecord
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: '4.0'
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: '4.0'
54
+ version: 5.2.4.3
69
55
  - !ruby/object:Gem::Dependency
70
- name: rake
56
+ name: activesupport
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: '12.0'
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: '12.0'
68
+ version: 5.2.4.3
83
69
  - !ruby/object:Gem::Dependency
84
- name: simplecov-rcov
70
+ name: airbrake
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: '0.2'
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: '0.2'
82
+ version: '7.3'
97
83
  - !ruby/object:Gem::Dependency
98
- name: rdoc
84
+ name: airbrake-ruby
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: '6.0'
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: '6.0'
96
+ version: '2.11'
111
97
  - !ruby/object:Gem::Dependency
112
- name: rack-test
98
+ name: alchemy-flux
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
- - - "~>"
101
+ - - '='
116
102
  - !ruby/object:Gem::Version
117
- version: '1.1'
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: '1.1'
110
+ version: 1.2.1
125
111
  - !ruby/object:Gem::Dependency
126
- name: alchemy-flux
112
+ name: bundle-audit
127
113
  requirement: !ruby/object:Gem::Requirement
128
114
  requirements:
129
- - - '='
115
+ - - ">="
130
116
  - !ruby/object:Gem::Version
131
- version: 1.2.1
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: 1.2.1
124
+ version: '0'
139
125
  - !ruby/object:Gem::Dependency
140
- name: rspec
126
+ name: byebug
141
127
  requirement: !ruby/object:Gem::Requirement
142
128
  requirements:
143
129
  - - "~>"
144
130
  - !ruby/object:Gem::Version
145
- version: '3.8'
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: '3.8'
138
+ version: '10.0'
153
139
  - !ruby/object:Gem::Dependency
154
- name: rspec-mocks
140
+ name: database_cleaner
155
141
  requirement: !ruby/object:Gem::Requirement
156
142
  requirements:
157
143
  - - "~>"
158
144
  - !ruby/object:Gem::Version
159
- version: '3.8'
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: '3.8'
152
+ version: '1.7'
167
153
  - !ruby/object:Gem::Dependency
168
- name: webmock
154
+ name: le
169
155
  requirement: !ruby/object:Gem::Requirement
170
156
  requirements:
171
157
  - - "~>"
172
158
  - !ruby/object:Gem::Version
173
- version: '3.4'
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: '3.4'
166
+ version: '2.7'
181
167
  - !ruby/object:Gem::Dependency
182
- name: activerecord
168
+ name: pg
183
169
  requirement: !ruby/object:Gem::Requirement
184
170
  requirements:
185
171
  - - "~>"
186
172
  - !ruby/object:Gem::Version
187
- version: '5.2'
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: '5.2'
180
+ version: '1.0'
195
181
  - !ruby/object:Gem::Dependency
196
- name: activesupport
182
+ name: rack-test
197
183
  requirement: !ruby/object:Gem::Requirement
198
184
  requirements:
199
185
  - - "~>"
200
186
  - !ruby/object:Gem::Version
201
- version: '5.2'
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: '5.2'
194
+ version: '1.1'
209
195
  - !ruby/object:Gem::Dependency
210
- name: database_cleaner
196
+ name: rake
211
197
  requirement: !ruby/object:Gem::Requirement
212
198
  requirements:
213
199
  - - "~>"
214
200
  - !ruby/object:Gem::Version
215
- version: '1.7'
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: '1.7'
208
+ version: '12.0'
223
209
  - !ruby/object:Gem::Dependency
224
- name: pg
210
+ name: raygun4ruby
225
211
  requirement: !ruby/object:Gem::Requirement
226
212
  requirements:
227
213
  - - "~>"
228
214
  - !ruby/object:Gem::Version
229
- version: '1.0'
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: '1.0'
222
+ version: '2.7'
237
223
  - !ruby/object:Gem::Dependency
238
- name: byebug
224
+ name: redis
239
225
  requirement: !ruby/object:Gem::Requirement
240
226
  requirements:
241
227
  - - "~>"
242
228
  - !ruby/object:Gem::Version
243
- version: '10.0'
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: '10.0'
236
+ version: '4.0'
251
237
  - !ruby/object:Gem::Dependency
252
- name: timecop
238
+ name: rspec
253
239
  requirement: !ruby/object:Gem::Requirement
254
240
  requirements:
255
241
  - - "~>"
256
242
  - !ruby/object:Gem::Version
257
- version: '0.9'
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: '0.9'
250
+ version: '3.8'
265
251
  - !ruby/object:Gem::Dependency
266
- name: raygun4ruby
252
+ name: rspec-mocks
267
253
  requirement: !ruby/object:Gem::Requirement
268
254
  requirements:
269
255
  - - "~>"
270
256
  - !ruby/object:Gem::Version
271
- version: '2.7'
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: '2.7'
264
+ version: '3.8'
279
265
  - !ruby/object:Gem::Dependency
280
- name: airbrake-ruby
266
+ name: sdoc
281
267
  requirement: !ruby/object:Gem::Requirement
282
268
  requirements:
283
269
  - - "~>"
284
270
  - !ruby/object:Gem::Version
285
- version: '2.11'
271
+ version: '2.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.11'
278
+ version: '2.2'
293
279
  - !ruby/object:Gem::Dependency
294
- name: airbrake
280
+ name: simplecov-rcov
295
281
  requirement: !ruby/object:Gem::Requirement
296
282
  requirements:
297
283
  - - "~>"
298
284
  - !ruby/object:Gem::Version
299
- version: '7.3'
285
+ version: '0.2'
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: '7.3'
292
+ version: '0.2'
307
293
  - !ruby/object:Gem::Dependency
308
- name: le
294
+ name: timecop
309
295
  requirement: !ruby/object:Gem::Requirement
310
296
  requirements:
311
297
  - - "~>"
312
298
  - !ruby/object:Gem::Version
313
- version: '2.7'
299
+ version: '0.9'
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: '2.7'
306
+ version: '0.9'
307
+ - !ruby/object:Gem::Dependency
308
+ name: webmock
309
+ requirement: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - "~>"
312
+ - !ruby/object:Gem::Version
313
+ version: '3.4'
314
+ type: :development
315
+ prerelease: false
316
+ version_requirements: !ruby/object:Gem::Requirement
317
+ requirements:
318
+ - - "~>"
319
+ - !ruby/object:Gem::Version
320
+ version: '3.4'
321
321
  description: Simplify the implementation of consistent services within an API-based
322
322
  software platform.
323
323
  email:
@@ -591,14 +591,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
591
591
  requirements:
592
592
  - - ">="
593
593
  - !ruby/object:Gem::Version
594
- version: 2.2.10
594
+ version: 2.5.5
595
595
  required_rubygems_version: !ruby/object:Gem::Requirement
596
596
  requirements:
597
597
  - - ">="
598
598
  - !ruby/object:Gem::Version
599
599
  version: '0'
600
600
  requirements: []
601
- rubygems_version: 3.1.2
601
+ rubygems_version: 3.2.25
602
602
  signing_key:
603
603
  specification_version: 4
604
604
  summary: Opinionated APIs