hoodoo 2.6.1 → 2.7.0

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: 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
  - - ">="