zaikio-client-helpers 0.2.1 → 0.2.4

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: 5231d366ba2c15a4a7adebee682f240828b9c09eef27ca41f0d9420c54dbf53d
4
- data.tar.gz: a918501a0c65b22ca0a22afe632859fb89b954dc6cdda9af965f2b93e2bd8277
3
+ metadata.gz: d00d304ca27fb927748ae92d163e44c1254a6a9b6c7cd2616fdc32e8cd08dc38
4
+ data.tar.gz: cbbe9e8df3357f9e1bfdb7defc4e14d20808add68608138d60684e2af78b2e08
5
5
  SHA512:
6
- metadata.gz: 122e12335f91bcb223a8ea83bc4c889c8ffa57c3348dd1a91a5ef1a9acffde537d0d260061b89b9bec9616242a608788fcb53f85daf20465ee32e594725b76fc
7
- data.tar.gz: 56690603e8d4e2b4f88c0ec6a7ac27659dd78210de2b64b19497758dd31505e9f036d9b112f7c694c38a138ea58c21090f59a2cb6d97988592b8a9aada6f2570
6
+ metadata.gz: 24eebf4cafa1afd04326db5f23b2d8518e2c1633607e5d8c54bcdf768b576ac5e7b3a266ac495c85ab73e6f167dfca7b545d41d802f3fd6777e8df417af35590
7
+ data.tar.gz: 51c4e0d201584c3d0701bffb3942a219d2d40312f946f4b75b11e43ccf00acc06369553b8ee6bdef182766f07137b38e52ef6520e4319c8e33ee55f44d008753
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.2.4] - 2022-03-29
4
+
5
+ - Add support for Faraday 2.x
6
+
7
+ ## [0.2.3] - 2021-11-12
8
+
9
+ - Handle "uncountable" responses (i.e. those without a Total-Count or Total-Pages header)
10
+
11
+ ## [0.2.2] - 2021-08-12
12
+
13
+ - Attempt to fix `NoMethodError` when looking for pagination headers
14
+
3
15
  ## [0.2.1] - 2021-08-05
4
16
 
5
17
  - Fixed `with_fallback` from spyke by aliasing the correct error classes
@@ -2,7 +2,13 @@ require "faraday"
2
2
  require "multi_json"
3
3
 
4
4
  module Zaikio::Client::Helpers
5
- class JSONParser < Faraday::Response::Middleware
5
+ superclass = if Gem.loaded_specs["faraday"].version >= Gem::Version.new("2.0")
6
+ Faraday::Middleware
7
+ else
8
+ Faraday::Response::Middleware
9
+ end
10
+
11
+ JSONParser = Class.new(superclass) do
6
12
  def on_complete(env)
7
13
  case env.status
8
14
  when 404 then raise Spyke::ResourceNotFound.new(nil, url: env.url)
@@ -11,6 +11,12 @@ module Zaikio::Client::Helpers
11
11
 
12
12
  METADATA_KEY = :pagination
13
13
 
14
+ superclass = if Gem.loaded_specs["faraday"].version >= Gem::Version.new("2.0")
15
+ Faraday::Middleware
16
+ else
17
+ Faraday::Response::Middleware
18
+ end
19
+
14
20
  # Faraday Middleware for extracting any pagination headers into the a top-level
15
21
  # :metadata hash, or the env hash for non-JSON responses.
16
22
  #
@@ -22,7 +28,7 @@ module Zaikio::Client::Helpers
22
28
  # response = conn.get("/")
23
29
  # response.env[METADATA_KEY]
24
30
  # #=> {total_count: 4, total_pages: 1, current_page: 1}
25
- class FaradayMiddleware < Faraday::Response::Middleware
31
+ FaradayMiddleware = Class.new(superclass) do
26
32
  def on_complete(env)
27
33
  @env = env
28
34
 
@@ -63,7 +69,7 @@ module Zaikio::Client::Helpers
63
69
  class Relation < Spyke::Relation
64
70
  HEADERS.each_key do |symbol|
65
71
  define_method(symbol) do
66
- find_some.metadata[METADATA_KEY][symbol]
72
+ find_some.metadata.dig(METADATA_KEY, symbol)
67
73
  end
68
74
  end
69
75
 
@@ -76,7 +82,11 @@ module Zaikio::Client::Helpers
76
82
  end
77
83
 
78
84
  def last_page?
79
- current_page >= total_pages
85
+ if total_pages.nil?
86
+ find_some.empty?
87
+ else
88
+ current_page >= total_pages
89
+ end
80
90
  end
81
91
 
82
92
  def supports_pagination?
@@ -3,7 +3,7 @@
3
3
  module Zaikio
4
4
  module Client
5
5
  module Helpers
6
- VERSION = "0.2.1"
6
+ VERSION = "0.2.4"
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zaikio-client-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zaikio GMBH
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-05 00:00:00.000000000 Z
11
+ date: 2022-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -16,14 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '1'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: '0'
29
+ version: '1'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '3'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: multi_json
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -42,16 +48,16 @@ dependencies:
42
48
  name: spyke
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
- - - ">="
51
+ - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '0'
53
+ version: '6'
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
- - - ">="
58
+ - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: '0'
60
+ version: '6'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: vcr
57
63
  requirement: !ruby/object:Gem::Requirement
@@ -112,7 +118,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
118
  requirements:
113
119
  - - ">="
114
120
  - !ruby/object:Gem::Version
115
- version: '0'
121
+ version: '2.3'
116
122
  required_rubygems_version: !ruby/object:Gem::Requirement
117
123
  requirements:
118
124
  - - ">="