wcc-api 0.5.1 → 0.6.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
- SHA1:
3
- metadata.gz: 0c0b6f43132217782441bec2a54a9d046110bf83
4
- data.tar.gz: dba5e3f10029efa9cb252474bd7763a3764cd9e4
2
+ SHA256:
3
+ metadata.gz: 47b500004307b9a7cc3691eb860b417d9abb224c3ad2a8990429ef94eb29ec5a
4
+ data.tar.gz: bb3f14dfde59b016aa379f92e8e09dc444785ffafc65342b7aba1dd4a5e24928
5
5
  SHA512:
6
- metadata.gz: 725780f28f63a96972d70e5c7cd4596c5e4a8bb22955123db4f8d0f30c9ed30aec5cba14a1ccc65359cb0178f1c487d2e431967861f20e87f4fa8a93b2b215e1
7
- data.tar.gz: f46f334b4a6c7c202f22898039350a54e7ccd8de6724c9e88cfe19fe3333db6d09c0fa6a4ae80a4f473a42439e513d2327b4e40dc82f6141f9577c4a153364ef
6
+ metadata.gz: a583e7a88e0d3de9297a88914e1a79d1e4f0722eb00e070cfddb2b2e4648cf47d535dce2a82e4c81046f35ea742cf9302e22ec82476cc627aabecb28df5ee14f
7
+ data.tar.gz: c68b93ce289b0390129e71418464cb6d247977343ae1f0477fc75fc6ef94efe5d75df2126a6c7a8b82ee9a4202729981c289abaa637f93446979cf0834638f0a
@@ -11,7 +11,7 @@ module WCC::API
11
11
  expires_in expiry, options.slice(:public, :must_revalidate)
12
12
  end
13
13
 
14
- fresh_when scope_or_record, options.slice(:etag, :public, :last_modified)
14
+ fresh_when(scope_or_record, **options.slice(:etag, :public, :last_modified))
15
15
  end
16
16
  end
17
17
  end
@@ -64,11 +64,11 @@ module WCC::API
64
64
  def next_page
65
65
  return unless next_page?
66
66
 
67
- @next_page ||= @client.get(
67
+ next_page ||= @client.get(
68
68
  @request[:url],
69
69
  (@request[:query] || {}).merge(next_page_query)
70
70
  )
71
- @next_page.assert_ok!
71
+ next_page.assert_ok!
72
72
  end
73
73
 
74
74
  def assert_ok!
@@ -81,16 +81,7 @@ module WCC::API
81
81
  def each_page(&block)
82
82
  raise ArgumentError, 'Not a collection response' unless collection_response?
83
83
 
84
- ret =
85
- Enumerator.new do |y|
86
- y << self
87
-
88
- if next_page?
89
- next_page.each_page.each do |page|
90
- y << page
91
- end
92
- end
93
- end
84
+ ret = PaginatingEnumerable.new(self)
94
85
 
95
86
  if block_given?
96
87
  ret.map(&block)
@@ -133,5 +124,25 @@ module WCC::API
133
124
  body['items']
134
125
  end
135
126
  end
127
+
128
+ class PaginatingEnumerable
129
+ include Enumerable
130
+
131
+ def initialize(initial_page)
132
+ raise ArgumentError, 'Must provide initial page' unless initial_page
133
+
134
+ @initial_page = initial_page
135
+ end
136
+
137
+ def each
138
+ page = @initial_page
139
+ yield page
140
+
141
+ while page.next_page?
142
+ page = page.next_page
143
+ yield page
144
+ end
145
+ end
146
+ end
136
147
  end
137
148
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module WCC
4
4
  module API
5
- VERSION = '0.5.1'
5
+ VERSION = '0.6.0'
6
6
  end
7
7
  end
data/wcc-api.gemspec CHANGED
@@ -21,7 +21,6 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_dependency 'wcc-base'
23
23
 
24
- spec.add_development_dependency 'bundler', '~> 1.6'
25
24
  spec.add_development_dependency 'dotenv', '~> 0.10.0'
26
25
  spec.add_development_dependency 'faraday', '~> 0.9'
27
26
  spec.add_development_dependency 'guard', '~> 2.15'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wcc-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Watermark Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-26 00:00:00.000000000 Z
11
+ date: 2024-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: wcc-base
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: bundler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '1.6'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '1.6'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: dotenv
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -255,8 +241,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
255
241
  - !ruby/object:Gem::Version
256
242
  version: '0'
257
243
  requirements: []
258
- rubyforge_project:
259
- rubygems_version: 2.6.11
244
+ rubygems_version: 3.5.4
260
245
  signing_key:
261
246
  specification_version: 4
262
247
  summary: Holds common code used in our applications that host APIs and those that