json_api_client 1.22.0 → 1.24.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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +20 -20
  3. data/README.md +723 -705
  4. data/Rakefile +32 -32
  5. data/lib/json_api_client/associations/base_association.rb +33 -33
  6. data/lib/json_api_client/associations/belongs_to.rb +31 -31
  7. data/lib/json_api_client/associations/has_many.rb +7 -7
  8. data/lib/json_api_client/associations/has_one.rb +16 -16
  9. data/lib/json_api_client/associations.rb +7 -7
  10. data/lib/json_api_client/connection.rb +41 -41
  11. data/lib/json_api_client/error_collector.rb +91 -91
  12. data/lib/json_api_client/errors.rb +125 -125
  13. data/lib/json_api_client/formatter.rb +145 -145
  14. data/lib/json_api_client/helpers/associatable.rb +88 -88
  15. data/lib/json_api_client/helpers/callbacks.rb +27 -27
  16. data/lib/json_api_client/helpers/dirty.rb +75 -75
  17. data/lib/json_api_client/helpers/dynamic_attributes.rb +78 -78
  18. data/lib/json_api_client/helpers/uri.rb +9 -9
  19. data/lib/json_api_client/helpers.rb +9 -9
  20. data/lib/json_api_client/implementation.rb +11 -11
  21. data/lib/json_api_client/included_data.rb +58 -58
  22. data/lib/json_api_client/linking/links.rb +21 -21
  23. data/lib/json_api_client/linking/top_level_links.rb +39 -39
  24. data/lib/json_api_client/linking.rb +5 -5
  25. data/lib/json_api_client/meta_data.rb +19 -19
  26. data/lib/json_api_client/middleware/json_request.rb +26 -26
  27. data/lib/json_api_client/middleware/status.rb +67 -67
  28. data/lib/json_api_client/middleware.rb +6 -7
  29. data/lib/json_api_client/paginating/nested_param_paginator.rb +140 -140
  30. data/lib/json_api_client/paginating/paginator.rb +89 -89
  31. data/lib/json_api_client/paginating.rb +6 -6
  32. data/lib/json_api_client/parsers/parser.rb +102 -102
  33. data/lib/json_api_client/parsers.rb +4 -4
  34. data/lib/json_api_client/query/builder.rb +239 -239
  35. data/lib/json_api_client/query/requestor.rb +73 -73
  36. data/lib/json_api_client/query.rb +5 -5
  37. data/lib/json_api_client/relationships/relations.rb +55 -55
  38. data/lib/json_api_client/relationships/top_level_relations.rb +30 -30
  39. data/lib/json_api_client/relationships.rb +5 -5
  40. data/lib/json_api_client/request_params.rb +57 -57
  41. data/lib/json_api_client/resource.rb +671 -658
  42. data/lib/json_api_client/result_set.rb +25 -25
  43. data/lib/json_api_client/schema.rb +154 -154
  44. data/lib/json_api_client/utils.rb +53 -53
  45. data/lib/json_api_client/version.rb +3 -3
  46. data/lib/json_api_client.rb +30 -30
  47. metadata +74 -36
  48. data/lib/json_api_client/middleware/parse_json.rb +0 -31
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.22.0
4
+ version: 1.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Ching
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2023-11-22 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activesupport
@@ -16,112 +15,154 @@ dependencies:
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: 3.2.0
18
+ version: 6.0.0
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
- version: 3.2.0
25
+ version: 6.0.0
26
+ - !ruby/object:Gem::Dependency
27
+ name: addressable
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '2.2'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.2'
40
+ - !ruby/object:Gem::Dependency
41
+ name: activemodel
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 6.0.0
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 6.0.0
27
54
  - !ruby/object:Gem::Dependency
28
55
  name: faraday
29
56
  requirement: !ruby/object:Gem::Requirement
30
57
  requirements:
31
58
  - - ">="
32
59
  - !ruby/object:Gem::Version
33
- version: 0.15.2
60
+ version: '1.10'
34
61
  - - "<"
35
62
  - !ruby/object:Gem::Version
36
- version: '2.0'
63
+ version: '3.0'
37
64
  type: :runtime
38
65
  prerelease: false
39
66
  version_requirements: !ruby/object:Gem::Requirement
40
67
  requirements:
41
68
  - - ">="
42
69
  - !ruby/object:Gem::Version
43
- version: 0.15.2
70
+ version: '1.10'
44
71
  - - "<"
45
72
  - !ruby/object:Gem::Version
46
- version: '2.0'
73
+ version: '3.0'
47
74
  - !ruby/object:Gem::Dependency
48
- name: faraday_middleware
75
+ name: faraday-gzip
49
76
  requirement: !ruby/object:Gem::Requirement
50
77
  requirements:
51
78
  - - ">="
52
79
  - !ruby/object:Gem::Version
53
- version: 0.9.0
80
+ version: '1.0'
54
81
  - - "<"
55
82
  - !ruby/object:Gem::Version
56
- version: '2.0'
83
+ version: '4.0'
57
84
  type: :runtime
58
85
  prerelease: false
59
86
  version_requirements: !ruby/object:Gem::Requirement
60
87
  requirements:
61
88
  - - ">="
62
89
  - !ruby/object:Gem::Version
63
- version: 0.9.0
90
+ version: '1.0'
64
91
  - - "<"
65
92
  - !ruby/object:Gem::Version
66
- version: '2.0'
93
+ version: '4.0'
67
94
  - !ruby/object:Gem::Dependency
68
- name: addressable
95
+ name: rack
69
96
  requirement: !ruby/object:Gem::Requirement
70
97
  requirements:
71
- - - "~>"
98
+ - - ">="
72
99
  - !ruby/object:Gem::Version
73
- version: '2.2'
100
+ version: '0.2'
74
101
  type: :runtime
75
102
  prerelease: false
76
103
  version_requirements: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: '0.2'
108
+ - !ruby/object:Gem::Dependency
109
+ name: webmock
110
+ requirement: !ruby/object:Gem::Requirement
77
111
  requirements:
78
112
  - - "~>"
79
113
  - !ruby/object:Gem::Version
80
- version: '2.2'
114
+ version: 3.5.1
115
+ type: :development
116
+ prerelease: false
117
+ version_requirements: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - "~>"
120
+ - !ruby/object:Gem::Version
121
+ version: 3.5.1
81
122
  - !ruby/object:Gem::Dependency
82
- name: activemodel
123
+ name: mocha
83
124
  requirement: !ruby/object:Gem::Requirement
84
125
  requirements:
85
126
  - - ">="
86
127
  - !ruby/object:Gem::Version
87
- version: 3.2.0
88
- type: :runtime
128
+ version: '0'
129
+ type: :development
89
130
  prerelease: false
90
131
  version_requirements: !ruby/object:Gem::Requirement
91
132
  requirements:
92
133
  - - ">="
93
134
  - !ruby/object:Gem::Version
94
- version: 3.2.0
135
+ version: '0'
95
136
  - !ruby/object:Gem::Dependency
96
- name: rack
137
+ name: appraisal
97
138
  requirement: !ruby/object:Gem::Requirement
98
139
  requirements:
99
140
  - - ">="
100
141
  - !ruby/object:Gem::Version
101
- version: '0.2'
102
- type: :runtime
142
+ version: '0'
143
+ type: :development
103
144
  prerelease: false
104
145
  version_requirements: !ruby/object:Gem::Requirement
105
146
  requirements:
106
147
  - - ">="
107
148
  - !ruby/object:Gem::Version
108
- version: '0.2'
149
+ version: '0'
109
150
  - !ruby/object:Gem::Dependency
110
- name: webmock
151
+ name: base64
111
152
  requirement: !ruby/object:Gem::Requirement
112
153
  requirements:
113
- - - "~>"
154
+ - - ">="
114
155
  - !ruby/object:Gem::Version
115
- version: 3.5.1
156
+ version: '0'
116
157
  type: :development
117
158
  prerelease: false
118
159
  version_requirements: !ruby/object:Gem::Requirement
119
160
  requirements:
120
- - - "~>"
161
+ - - ">="
121
162
  - !ruby/object:Gem::Version
122
- version: 3.5.1
163
+ version: '0'
123
164
  - !ruby/object:Gem::Dependency
124
- name: mocha
165
+ name: mutex_m
125
166
  requirement: !ruby/object:Gem::Requirement
126
167
  requirements:
127
168
  - - ">="
@@ -167,7 +208,6 @@ files:
167
208
  - lib/json_api_client/meta_data.rb
168
209
  - lib/json_api_client/middleware.rb
169
210
  - lib/json_api_client/middleware/json_request.rb
170
- - lib/json_api_client/middleware/parse_json.rb
171
211
  - lib/json_api_client/middleware/status.rb
172
212
  - lib/json_api_client/paginating.rb
173
213
  - lib/json_api_client/paginating/nested_param_paginator.rb
@@ -190,7 +230,6 @@ homepage: http://github.com/chingor13/json_api_client
190
230
  licenses:
191
231
  - MIT
192
232
  metadata: {}
193
- post_install_message:
194
233
  rdoc_options: []
195
234
  require_paths:
196
235
  - lib
@@ -205,8 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
205
244
  - !ruby/object:Gem::Version
206
245
  version: '0'
207
246
  requirements: []
208
- rubygems_version: 3.0.3.1
209
- signing_key:
247
+ rubygems_version: 4.0.11
210
248
  specification_version: 4
211
249
  summary: Build client libraries compliant with specification defined by jsonapi.org
212
250
  test_files: []
@@ -1,31 +0,0 @@
1
- module JsonApiClient
2
- module Middleware
3
- class ParseJson < Faraday::Middleware
4
-
5
- def call(environment)
6
- @app.call(environment).on_complete do |env|
7
- if process_response_type?(response_type(env))
8
- env[:raw_body] = env[:body]
9
- env[:body] = parse(env[:body])
10
- end
11
- end
12
- end
13
-
14
- private
15
-
16
- def parse(body)
17
- ::JSON.parse(body) unless body.strip.empty?
18
- end
19
-
20
- def response_type(env)
21
- type = env[:response_headers]['Content-Type'].to_s
22
- type = type.split(';', 2).first if type.index(';')
23
- type
24
- end
25
-
26
- def process_response_type?(type)
27
- !!type.match(/\bjson$/)
28
- end
29
- end
30
- end
31
- end