hoodoo 2.6.0 → 2.6.1

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
- SHA1:
3
- metadata.gz: cbae2491898cb113ffb0d3b9580e860e050d0fd5
4
- data.tar.gz: d7dd9c51af9a0015572d9cb46d5a0fb63ee679c4
2
+ SHA256:
3
+ metadata.gz: 0e686c8d61af9db25a3c714c91d857513677995476a615d524fa330876d3ecfe
4
+ data.tar.gz: 873e6143a9c010fb0647d03cb88c7d2de94cafffa705c91cdae47a0f801c49ae
5
5
  SHA512:
6
- metadata.gz: 1e2bf59ec7c80eb94e45a3cb549f18f783b4fce0d5b263c4da9b92b7bf01c69b32f8a0980f5ce25f7a7ebc4bff5f0d60d63e2b51dea93784491382abc58f0571
7
- data.tar.gz: 0a55cfb887c0fbf48594081bc2cd44e51b48c3e46dbc22018937acfc6645caca60e1981fcc3f49dea5883b8a925ae37dc1e9c2972e88472ae7436d7957651795
6
+ metadata.gz: 6cb8d790977ac5d24743f527c6446873e032c4186628ae70aca8c84fd1f51189ddce09bfb8d191367918c917b0bb5b714293a9f55f27e0eefabac8563b5829d0
7
+ data.tar.gz: 069fe304a7adf0e3bace5c28871d7f568962d139b94b83f85cb41480287230ff63151dcfdb3196a0972610ce042c12f79a8ce94d01b1349a340aff3ea825444d
@@ -329,17 +329,16 @@ module Hoodoo
329
329
  # value set.
330
330
  #
331
331
  def inject_enumeration_state( augmented_array, query_hash )
332
+ endpoint = self
333
+ query_hash = Hoodoo::Utilities.stringify( query_hash || {} )
334
+ batch_size = [ 1, augmented_array.size ].max
332
335
 
333
- endpoint = self
334
- query_hash = query_hash.nil? ? {} : query_hash.dup
335
- batch_size = [ 1, augmented_array.size ].max
336
336
  augmented_array.next_page_proc = Proc.new do
337
337
  query_hash[ 'offset' ] = ( query_hash[ 'offset' ] || 0 ) + batch_size
338
338
  endpoint.list( query_hash )
339
339
  end
340
340
 
341
341
  return augmented_array
342
-
343
342
  end
344
343
 
345
344
  public
@@ -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.0'
15
+ VERSION = '2.6.1'
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-05-23'
20
+ DATE = '2018-06-01'
21
21
 
22
22
  end
@@ -272,7 +272,7 @@ describe Hoodoo::Client do
272
272
  }.to raise_error( RuntimeError, 'Hoodoo::Client::PaginatedEnumeration#enumerate_all: Unexpected internal state combination of results set and results error indication' )
273
273
  end
274
274
 
275
- context 'different "limit" sizes' do
275
+ context 'with different "limit" sizes' do
276
276
 
277
277
  let(:limits) {
278
278
  # Note: Smaller limits will make the tests very slow
@@ -299,6 +299,46 @@ describe Hoodoo::Client do
299
299
 
300
300
  end
301
301
 
302
+ context 'with different "offset" values' do
303
+
304
+ let(:offsets) {
305
+ [ 0, 1, 2, 3, 250, 500, 998, 999, 1000, 1001 ]
306
+ }
307
+
308
+ shared_examples 'enumerator which' do | key |
309
+ it "obeys offsets via #{ key.inspect }" do
310
+
311
+ resources.each do | resource |
312
+ offsets.each do | offset |
313
+ numbers = []
314
+
315
+ resource[ :endpoint ].list( { key => offset } ).enumerate_all do | result |
316
+ expect( result.platform_errors.errors ).to eq( [] )
317
+ break if result.platform_errors.has_errors?
318
+ numbers << result[ 'number' ]
319
+ end
320
+
321
+ expected_data = resource[ :data ][ offset .. -1 ]
322
+
323
+ # If nil, the requested offset is beyond any actual data;
324
+ # expect empty result set.
325
+
326
+ if expected_data.nil?
327
+ expect( numbers ).to be_empty
328
+ else
329
+ expect( numbers ).to eq( expected_data )
330
+ end
331
+ end
332
+ end
333
+
334
+ end
335
+ end
336
+
337
+ it_behaves_like 'enumerator which', 'offset'
338
+ it_behaves_like 'enumerator which', :offset
339
+
340
+ end
341
+
302
342
  end
303
343
 
304
344
  context 'error handling behaviour' do
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.0
4
+ version: 2.6.1
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-05-23 00:00:00.000000000 Z
11
+ date: 2018-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dalli
@@ -556,7 +556,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
556
556
  version: '0'
557
557
  requirements: []
558
558
  rubyforge_project:
559
- rubygems_version: 2.6.14
559
+ rubygems_version: 2.7.7
560
560
  signing_key:
561
561
  specification_version: 4
562
562
  summary: Opinionated APIs