hoodoo 2.6.1 → 2.7.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
  SHA256:
3
- metadata.gz: 0e686c8d61af9db25a3c714c91d857513677995476a615d524fa330876d3ecfe
4
- data.tar.gz: 873e6143a9c010fb0647d03cb88c7d2de94cafffa705c91cdae47a0f801c49ae
3
+ metadata.gz: 64349a6945a30beac7d4b9f79dd8b71a4a58027805e22097643ce8c6500a4a9b
4
+ data.tar.gz: c06b01af44c143d470786840df373ffb8baf9699d1a293ca00b6561a487b4966
5
5
  SHA512:
6
- metadata.gz: 6cb8d790977ac5d24743f527c6446873e032c4186628ae70aca8c84fd1f51189ddce09bfb8d191367918c917b0bb5b714293a9f55f27e0eefabac8563b5829d0
7
- data.tar.gz: 069fe304a7adf0e3bace5c28871d7f568962d139b94b83f85cb41480287230ff63151dcfdb3196a0972610ce042c12f79a8ce94d01b1349a340aff3ea825444d
6
+ metadata.gz: 05572a42507a1c94c95605e35ed7ad2318666204e107db421ca6b37a32ae07ff45338e826f2ed540289b1958e2dda7df613ea9c48ef77bba06718ae1e65ae82d
7
+ data.tar.gz: bb7c170f76f86651d5904303ad62dcbf7e7e4ec10a925c661962c4d25c12739a86563cf2eecbb4c079e33e631e7e0cd6a75b866b0d8ec90f05e240f0d39cc7ed
@@ -747,7 +747,8 @@ module Hoodoo
747
747
  # Additional _named_ parameters are:
748
748
  #
749
749
  # +ident+:: UUID (32-digit +id+ column value) of the record to be
750
- # updated. If omitted, +context.request.ident+ is used.
750
+ # updated. If present, the +context+ parameter may be
751
+ # +nil+. If omitted, +context.request.ident+ is used.
751
752
  #
752
753
  # +scope+:: ActiveRecord::Relation instance providing the scope
753
754
  # to use for database locks and acquiring the record
@@ -20,16 +20,15 @@ module Hoodoo
20
20
  # and_return( Hoodoo::TransientStore::Mocks::Redis.new )
21
21
  # )
22
22
  #
23
- # ...whenever you need to stub out real Memcached. You will
24
- # probably want to add:
23
+ # ...whenever you need to stub out real Redis. You will# probably want
24
+ # to add:
25
25
  #
26
26
  # before :all do # (or ":each")
27
27
  # Hoodoo::TransientStore::Mocks::Redis.reset()
28
28
  # end
29
29
  #
30
- # ...to "clean out Memcached" before or between tests. You can
31
- # check the contents of mock Memcached by examining ::store's
32
- # hash of data.
30
+ # ...to "clean out Redis" before or between tests. You can check the
31
+ # contents of mock Redis by examining ::store's hash of data.
33
32
  #
34
33
  # The test coverage for Hoodoo::TransientStore selects this backend in
35
34
  # passing. Generally speaking you should favour Hoodoo::TransientStore
@@ -39,7 +38,7 @@ module Hoodoo
39
38
  class Redis
40
39
  @@store = {}
41
40
 
42
- # For test analysis, return the hash of 'memcached' mock data.
41
+ # For test analysis, return the hash of 'Redis' mock data.
43
42
  #
44
43
  # Entries are referenced by the key you used to originally
45
44
  # store them; values are hashes with ":expires_at" giving an
@@ -46,7 +46,7 @@ module Hoodoo
46
46
  def set( key:, payload:, maximum_lifespan: )
47
47
  nk = namespaced_key( key )
48
48
 
49
- @client[ nk ] = JSON.fast_generate( payload )
49
+ @client.set( nk, JSON.fast_generate( payload ) )
50
50
  @client.expire( nk, maximum_lifespan )
51
51
 
52
52
  true
@@ -55,7 +55,7 @@ module Hoodoo
55
55
  # See Hoodoo::TransientStore::Base#get for details.
56
56
  #
57
57
  def get( key: )
58
- result = @client[ namespaced_key( key ) ]
58
+ result = @client.get( namespaced_key( key ) )
59
59
  return result.nil? ? nil : ( JSON.parse( result ) rescue nil )
60
60
  end
61
61
 
@@ -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.6.1'
15
+ VERSION = '2.7.0'
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 = '2018-06-01'
20
+ DATE = '2018-08-06'
21
21
 
22
22
  end
@@ -533,6 +533,20 @@ describe Hoodoo::ActiveRecord::ManuallyDated do
533
533
  run_expectations( result )
534
534
  end
535
535
 
536
+ # If 'ident' and 'attributes' are given, 'context' can be "nil".
537
+ #
538
+ it 'specifying "ident" and "attributes" with nil "context"' do
539
+ @context.request.instance_variable_set( '@ident', Hoodoo::UUID.generate() )
540
+
541
+ result = RSpecModelManualDateTest.manually_dated_update_in(
542
+ nil,
543
+ ident: @record.uuid,
544
+ attributes: { 'data' => @change_data_to }
545
+ )
546
+
547
+ run_expectations( result )
548
+ end
549
+
536
550
  it 'uses a given scope' do
537
551
 
538
552
  # We expect the custom scope to be customised to find an
@@ -728,6 +742,19 @@ describe Hoodoo::ActiveRecord::ManuallyDated do
728
742
  run_expectations( result )
729
743
  end
730
744
 
745
+ # If 'ident' is given, 'context' can be "nil".
746
+ #
747
+ it 'specifying "ident" with nil "context"' do
748
+ @context.request.instance_variable_set( '@ident', Hoodoo::UUID.generate() )
749
+
750
+ result = RSpecModelManualDateTest.manually_dated_destruction_in(
751
+ nil,
752
+ ident: @record.uuid
753
+ )
754
+
755
+ run_expectations( result )
756
+ end
757
+
731
758
  it 'uses a given scope' do
732
759
 
733
760
  # We expect the custom scope to be customised to find an
@@ -133,7 +133,7 @@ describe Hoodoo::TransientStore::Redis do
133
133
 
134
134
  context '#set' do
135
135
  it 'sets' do
136
- expect_redis( backend ).to receive( :[]= ).with( @nskey, @jpayload ).and_call_original()
136
+ expect_redis( backend ).to receive( :set ).with( @nskey, @jpayload ).and_call_original()
137
137
  expect_redis( backend ).to receive( :expire ).with( @nskey, @ttl ).and_call_original()
138
138
 
139
139
  result = @instance.set(
@@ -146,7 +146,7 @@ describe Hoodoo::TransientStore::Redis do
146
146
  end
147
147
 
148
148
  it 'allows exceptions to propagate' do
149
- expect_redis( backend ).to receive( :[]= ).with( @nskey, @jpayload ).and_raise( 'Hello world' )
149
+ expect_redis( backend ).to receive( :set ).with( @nskey, @jpayload ).and_raise( 'Hello world' )
150
150
 
151
151
  expect {
152
152
  @instance.set(
@@ -160,7 +160,7 @@ describe Hoodoo::TransientStore::Redis do
160
160
 
161
161
  context '#get' do
162
162
  before :each do
163
- expect_redis( backend ).to receive( :[]= ).with( @nskey, @jpayload ).and_call_original()
163
+ expect_redis( backend ).to receive( :set ).with( @nskey, @jpayload ).and_call_original()
164
164
  expect_redis( backend ).to receive( :expire ).with( @nskey, @ttl ).and_call_original()
165
165
 
166
166
  @instance.set(
@@ -171,7 +171,7 @@ describe Hoodoo::TransientStore::Redis do
171
171
  end
172
172
 
173
173
  it 'gets known keys' do
174
- expect_redis( backend ).to receive( :[] ).with( @nskey ).and_call_original()
174
+ expect_redis( backend ).to receive( :get ).with( @nskey ).and_call_original()
175
175
  expect( @instance.get( key: @key ) ).to eql( @payload )
176
176
  end
177
177
 
@@ -180,7 +180,7 @@ describe Hoodoo::TransientStore::Redis do
180
180
  end
181
181
 
182
182
  it 'allows exceptions to propagate' do
183
- expect_redis( backend ).to receive( :[] ).with( @nskey ).and_raise( 'Hello world' )
183
+ expect_redis( backend ).to receive( :get ).with( @nskey ).and_raise( 'Hello world' )
184
184
 
185
185
  expect {
186
186
  @instance.get( key: @key )
@@ -190,7 +190,7 @@ describe Hoodoo::TransientStore::Redis do
190
190
 
191
191
  context '#delete' do
192
192
  before :each do
193
- expect_redis( backend ).to receive( :[]= ).with( @nskey, @jpayload ).and_call_original()
193
+ expect_redis( backend ).to receive( :set ).with( @nskey, @jpayload ).and_call_original()
194
194
  expect_redis( backend ).to receive( :expire ).with( @nskey, @ttl ).and_call_original()
195
195
 
196
196
  @instance.set(
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hoodoo
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.1
4
+ version: 2.7.0
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: 2018-06-01 00:00:00.000000000 Z
11
+ date: 2018-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dalli
@@ -24,20 +24,34 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundle-audit
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: redis
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '3.3'
47
+ version: '4.0'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: '3.3'
54
+ version: '4.0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,112 +86,112 @@ dependencies:
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: '5.1'
89
+ version: '6.0'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: '5.1'
96
+ version: '6.0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rack-test
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: '0.6'
103
+ version: '1.1'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '0.6'
110
+ version: '1.1'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rspec
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '3.5'
117
+ version: '3.8'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '3.5'
124
+ version: '3.8'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: rspec-mocks
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
129
  - - "~>"
116
130
  - !ruby/object:Gem::Version
117
- version: '3.5'
131
+ version: '3.8'
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
136
  - - "~>"
123
137
  - !ruby/object:Gem::Version
124
- version: '3.5'
138
+ version: '3.8'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: webmock
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
143
  - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: '3.3'
145
+ version: '3.4'
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
- version: '3.3'
152
+ version: '3.4'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: activerecord
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
157
  - - "~>"
144
158
  - !ruby/object:Gem::Version
145
- version: '5.1'
159
+ version: '5.2'
146
160
  type: :development
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
164
  - - "~>"
151
165
  - !ruby/object:Gem::Version
152
- version: '5.1'
166
+ version: '5.2'
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: activesupport
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
171
  - - "~>"
158
172
  - !ruby/object:Gem::Version
159
- version: '5.1'
173
+ version: '5.2'
160
174
  type: :development
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
178
  - - "~>"
165
179
  - !ruby/object:Gem::Version
166
- version: '5.1'
180
+ version: '5.2'
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: database_cleaner
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
185
  - - "~>"
172
186
  - !ruby/object:Gem::Version
173
- version: '1.6'
187
+ version: '1.7'
174
188
  type: :development
175
189
  prerelease: false
176
190
  version_requirements: !ruby/object:Gem::Requirement
177
191
  requirements:
178
192
  - - "~>"
179
193
  - !ruby/object:Gem::Version
180
- version: '1.6'
194
+ version: '1.7'
181
195
  - !ruby/object:Gem::Dependency
182
196
  name: pg
183
197
  requirement: !ruby/object:Gem::Requirement
@@ -198,70 +212,70 @@ dependencies:
198
212
  requirements:
199
213
  - - "~>"
200
214
  - !ruby/object:Gem::Version
201
- version: '9.0'
215
+ version: '10.0'
202
216
  type: :development
203
217
  prerelease: false
204
218
  version_requirements: !ruby/object:Gem::Requirement
205
219
  requirements:
206
220
  - - "~>"
207
221
  - !ruby/object:Gem::Version
208
- version: '9.0'
222
+ version: '10.0'
209
223
  - !ruby/object:Gem::Dependency
210
224
  name: timecop
211
225
  requirement: !ruby/object:Gem::Requirement
212
226
  requirements:
213
227
  - - "~>"
214
228
  - !ruby/object:Gem::Version
215
- version: '0.8'
229
+ version: '0.9'
216
230
  type: :development
217
231
  prerelease: false
218
232
  version_requirements: !ruby/object:Gem::Requirement
219
233
  requirements:
220
234
  - - "~>"
221
235
  - !ruby/object:Gem::Version
222
- version: '0.8'
236
+ version: '0.9'
223
237
  - !ruby/object:Gem::Dependency
224
238
  name: raygun4ruby
225
239
  requirement: !ruby/object:Gem::Requirement
226
240
  requirements:
227
241
  - - "~>"
228
242
  - !ruby/object:Gem::Version
229
- version: '2.6'
243
+ version: '2.7'
230
244
  type: :development
231
245
  prerelease: false
232
246
  version_requirements: !ruby/object:Gem::Requirement
233
247
  requirements:
234
248
  - - "~>"
235
249
  - !ruby/object:Gem::Version
236
- version: '2.6'
250
+ version: '2.7'
237
251
  - !ruby/object:Gem::Dependency
238
252
  name: airbrake-ruby
239
253
  requirement: !ruby/object:Gem::Requirement
240
254
  requirements:
241
255
  - - "~>"
242
256
  - !ruby/object:Gem::Version
243
- version: '2.6'
257
+ version: '2.11'
244
258
  type: :development
245
259
  prerelease: false
246
260
  version_requirements: !ruby/object:Gem::Requirement
247
261
  requirements:
248
262
  - - "~>"
249
263
  - !ruby/object:Gem::Version
250
- version: '2.6'
264
+ version: '2.11'
251
265
  - !ruby/object:Gem::Dependency
252
266
  name: airbrake
253
267
  requirement: !ruby/object:Gem::Requirement
254
268
  requirements:
255
269
  - - "~>"
256
270
  - !ruby/object:Gem::Version
257
- version: '7.1'
271
+ version: '7.3'
258
272
  type: :development
259
273
  prerelease: false
260
274
  version_requirements: !ruby/object:Gem::Requirement
261
275
  requirements:
262
276
  - - "~>"
263
277
  - !ruby/object:Gem::Version
264
- version: '7.1'
278
+ version: '7.3'
265
279
  - !ruby/object:Gem::Dependency
266
280
  name: le
267
281
  requirement: !ruby/object:Gem::Requirement
@@ -548,7 +562,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
548
562
  requirements:
549
563
  - - ">="
550
564
  - !ruby/object:Gem::Version
551
- version: 2.2.8
565
+ version: 2.2.10
552
566
  required_rubygems_version: !ruby/object:Gem::Requirement
553
567
  requirements:
554
568
  - - ">="