graphiti 1.2.16 → 1.3.9

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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +96 -0
  3. data/.standard.yml +4 -4
  4. data/Appraisals +23 -17
  5. data/CHANGELOG.md +7 -1
  6. data/Guardfile +5 -5
  7. data/deprecated_generators/graphiti/generator_mixin.rb +1 -0
  8. data/deprecated_generators/graphiti/resource_generator.rb +1 -1
  9. data/gemfiles/{rails_5.gemfile → rails_5_2.gemfile} +2 -2
  10. data/gemfiles/{rails_5_graphiti_rails.gemfile → rails_5_2_graphiti_rails.gemfile} +3 -4
  11. data/gemfiles/rails_6.gemfile +1 -1
  12. data/gemfiles/rails_6_graphiti_rails.gemfile +2 -3
  13. data/gemfiles/{rails_4.gemfile → rails_7.gemfile} +2 -2
  14. data/gemfiles/rails_7_graphiti_rails.gemfile +19 -0
  15. data/graphiti.gemspec +16 -16
  16. data/lib/graphiti/adapters/abstract.rb +20 -5
  17. data/lib/graphiti/adapters/active_record/belongs_to_sideload.rb +1 -1
  18. data/lib/graphiti/adapters/active_record/has_many_sideload.rb +1 -1
  19. data/lib/graphiti/adapters/active_record/has_one_sideload.rb +1 -1
  20. data/lib/graphiti/adapters/active_record/{inferrence.rb → inference.rb} +2 -2
  21. data/lib/graphiti/adapters/active_record/many_to_many_sideload.rb +19 -0
  22. data/lib/graphiti/adapters/active_record.rb +119 -74
  23. data/lib/graphiti/adapters/graphiti_api.rb +1 -1
  24. data/lib/graphiti/adapters/null.rb +1 -1
  25. data/lib/graphiti/adapters/persistence/associations.rb +78 -0
  26. data/lib/graphiti/configuration.rb +3 -1
  27. data/lib/graphiti/debugger.rb +12 -8
  28. data/lib/graphiti/delegates/pagination.rb +47 -13
  29. data/lib/graphiti/deserializer.rb +3 -3
  30. data/lib/graphiti/errors.rb +109 -15
  31. data/lib/graphiti/extensions/extra_attribute.rb +4 -4
  32. data/lib/graphiti/extensions/temp_id.rb +1 -1
  33. data/lib/graphiti/filter_operators.rb +0 -1
  34. data/lib/graphiti/hash_renderer.rb +198 -21
  35. data/lib/graphiti/query.rb +105 -73
  36. data/lib/graphiti/railtie.rb +5 -5
  37. data/lib/graphiti/renderer.rb +19 -1
  38. data/lib/graphiti/request_validator.rb +10 -10
  39. data/lib/graphiti/request_validators/update_validator.rb +4 -5
  40. data/lib/graphiti/request_validators/validator.rb +38 -24
  41. data/lib/graphiti/resource/configuration.rb +35 -7
  42. data/lib/graphiti/resource/dsl.rb +34 -8
  43. data/lib/graphiti/resource/interface.rb +13 -3
  44. data/lib/graphiti/resource/links.rb +3 -3
  45. data/lib/graphiti/resource/persistence.rb +2 -1
  46. data/lib/graphiti/resource/polymorphism.rb +8 -2
  47. data/lib/graphiti/resource/remote.rb +2 -2
  48. data/lib/graphiti/resource/sideloading.rb +4 -4
  49. data/lib/graphiti/resource.rb +12 -1
  50. data/lib/graphiti/resource_proxy.rb +23 -3
  51. data/lib/graphiti/runner.rb +5 -5
  52. data/lib/graphiti/schema.rb +36 -11
  53. data/lib/graphiti/schema_diff.rb +44 -4
  54. data/lib/graphiti/scope.rb +8 -10
  55. data/lib/graphiti/scoping/base.rb +3 -3
  56. data/lib/graphiti/scoping/filter.rb +36 -15
  57. data/lib/graphiti/scoping/filter_group_validator.rb +78 -0
  58. data/lib/graphiti/scoping/paginate.rb +47 -3
  59. data/lib/graphiti/scoping/sort.rb +5 -7
  60. data/lib/graphiti/serializer.rb +49 -7
  61. data/lib/graphiti/sideload/belongs_to.rb +1 -1
  62. data/lib/graphiti/sideload/has_many.rb +19 -1
  63. data/lib/graphiti/sideload/many_to_many.rb +11 -4
  64. data/lib/graphiti/sideload/polymorphic_belongs_to.rb +3 -4
  65. data/lib/graphiti/sideload.rb +47 -23
  66. data/lib/graphiti/stats/dsl.rb +0 -1
  67. data/lib/graphiti/stats/payload.rb +12 -9
  68. data/lib/graphiti/types.rb +15 -15
  69. data/lib/graphiti/util/attribute_check.rb +1 -1
  70. data/lib/graphiti/util/class.rb +6 -0
  71. data/lib/graphiti/util/link.rb +10 -2
  72. data/lib/graphiti/util/persistence.rb +21 -78
  73. data/lib/graphiti/util/relationship_payload.rb +4 -4
  74. data/lib/graphiti/util/remote_params.rb +9 -4
  75. data/lib/graphiti/util/remote_serializer.rb +1 -0
  76. data/lib/graphiti/util/serializer_attributes.rb +41 -11
  77. data/lib/graphiti/util/simple_errors.rb +4 -4
  78. data/lib/graphiti/util/transaction_hooks_recorder.rb +1 -1
  79. data/lib/graphiti/version.rb +1 -1
  80. data/lib/graphiti.rb +6 -3
  81. metadata +46 -37
  82. data/.travis.yml +0 -59
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphiti
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.16
4
+ version: 1.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lee Richmond
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-31 00:00:00.000000000 Z
11
+ date: 2022-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jsonapi-serializable
@@ -28,16 +28,22 @@ dependencies:
28
28
  name: jsonapi-renderer
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '='
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.2.0
33
+ version: '0.2'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 0.2.2
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
- - - '='
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '0.2'
44
+ - - ">="
39
45
  - !ruby/object:Gem::Version
40
- version: 0.2.0
46
+ version: 0.2.2
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: dry-types
43
49
  requirement: !ruby/object:Gem::Requirement
@@ -92,14 +98,14 @@ dependencies:
92
98
  requirements:
93
99
  - - ">="
94
100
  - !ruby/object:Gem::Version
95
- version: '4.1'
101
+ version: '5.2'
96
102
  type: :runtime
97
103
  prerelease: false
98
104
  version_requirements: !ruby/object:Gem::Requirement
99
105
  requirements:
100
106
  - - ">="
101
107
  - !ruby/object:Gem::Version
102
- version: '4.1'
108
+ version: '5.2'
103
109
  - !ruby/object:Gem::Dependency
104
110
  name: faraday
105
111
  requirement: !ruby/object:Gem::Requirement
@@ -146,59 +152,59 @@ dependencies:
146
152
  name: rake
147
153
  requirement: !ruby/object:Gem::Requirement
148
154
  requirements:
149
- - - "~>"
155
+ - - ">="
150
156
  - !ruby/object:Gem::Version
151
157
  version: '10.0'
152
158
  type: :development
153
159
  prerelease: false
154
160
  version_requirements: !ruby/object:Gem::Requirement
155
161
  requirements:
156
- - - "~>"
162
+ - - ">="
157
163
  - !ruby/object:Gem::Version
158
164
  version: '10.0'
159
165
  - !ruby/object:Gem::Dependency
160
- name: activemodel
166
+ name: standard
161
167
  requirement: !ruby/object:Gem::Requirement
162
168
  requirements:
163
- - - ">="
169
+ - - "~>"
164
170
  - !ruby/object:Gem::Version
165
- version: '4.1'
171
+ version: 1.4.0
166
172
  type: :development
167
173
  prerelease: false
168
174
  version_requirements: !ruby/object:Gem::Requirement
169
175
  requirements:
170
- - - ">="
176
+ - - "~>"
171
177
  - !ruby/object:Gem::Version
172
- version: '4.1'
178
+ version: 1.4.0
173
179
  - !ruby/object:Gem::Dependency
174
- name: graphiti_spec_helpers
180
+ name: activemodel
175
181
  requirement: !ruby/object:Gem::Requirement
176
182
  requirements:
177
- - - '='
183
+ - - ">="
178
184
  - !ruby/object:Gem::Version
179
- version: 1.0.beta.4
185
+ version: '5.2'
180
186
  type: :development
181
187
  prerelease: false
182
188
  version_requirements: !ruby/object:Gem::Requirement
183
189
  requirements:
184
- - - '='
190
+ - - ">="
185
191
  - !ruby/object:Gem::Version
186
- version: 1.0.beta.4
192
+ version: '5.2'
187
193
  - !ruby/object:Gem::Dependency
188
- name: standard
194
+ name: graphiti_spec_helpers
189
195
  requirement: !ruby/object:Gem::Requirement
190
196
  requirements:
191
- - - ">="
197
+ - - '='
192
198
  - !ruby/object:Gem::Version
193
- version: '0'
199
+ version: 1.0.beta.4
194
200
  type: :development
195
201
  prerelease: false
196
202
  version_requirements: !ruby/object:Gem::Requirement
197
203
  requirements:
198
- - - ">="
204
+ - - '='
199
205
  - !ruby/object:Gem::Version
200
- version: '0'
201
- description:
206
+ version: 1.0.beta.4
207
+ description:
202
208
  email:
203
209
  - richmolj@gmail.com
204
210
  executables:
@@ -206,10 +212,10 @@ executables:
206
212
  extensions: []
207
213
  extra_rdoc_files: []
208
214
  files:
215
+ - ".github/workflows/ci.yml"
209
216
  - ".gitignore"
210
217
  - ".rspec"
211
218
  - ".standard.yml"
212
- - ".travis.yml"
213
219
  - ".yardopts"
214
220
  - Appraisals
215
221
  - CHANGELOG.md
@@ -240,11 +246,12 @@ files:
240
246
  - deprecated_generators/graphiti/templates/update_request_spec.rb.erb
241
247
  - exe/graphiti
242
248
  - gemfiles/.bundle/config
243
- - gemfiles/rails_4.gemfile
244
- - gemfiles/rails_5.gemfile
245
- - gemfiles/rails_5_graphiti_rails.gemfile
249
+ - gemfiles/rails_5_2.gemfile
250
+ - gemfiles/rails_5_2_graphiti_rails.gemfile
246
251
  - gemfiles/rails_6.gemfile
247
252
  - gemfiles/rails_6_graphiti_rails.gemfile
253
+ - gemfiles/rails_7.gemfile
254
+ - gemfiles/rails_7_graphiti_rails.gemfile
248
255
  - graphiti.gemspec
249
256
  - lib/graphiti.rb
250
257
  - lib/graphiti/adapters/abstract.rb
@@ -252,10 +259,11 @@ files:
252
259
  - lib/graphiti/adapters/active_record/belongs_to_sideload.rb
253
260
  - lib/graphiti/adapters/active_record/has_many_sideload.rb
254
261
  - lib/graphiti/adapters/active_record/has_one_sideload.rb
255
- - lib/graphiti/adapters/active_record/inferrence.rb
262
+ - lib/graphiti/adapters/active_record/inference.rb
256
263
  - lib/graphiti/adapters/active_record/many_to_many_sideload.rb
257
264
  - lib/graphiti/adapters/graphiti_api.rb
258
265
  - lib/graphiti/adapters/null.rb
266
+ - lib/graphiti/adapters/persistence/associations.rb
259
267
  - lib/graphiti/cli.rb
260
268
  - lib/graphiti/configuration.rb
261
269
  - lib/graphiti/context.rb
@@ -297,6 +305,7 @@ files:
297
305
  - lib/graphiti/scoping/default_filter.rb
298
306
  - lib/graphiti/scoping/extra_attributes.rb
299
307
  - lib/graphiti/scoping/filter.rb
308
+ - lib/graphiti/scoping/filter_group_validator.rb
300
309
  - lib/graphiti/scoping/filterable.rb
301
310
  - lib/graphiti/scoping/paginate.rb
302
311
  - lib/graphiti/scoping/sort.rb
@@ -331,23 +340,23 @@ homepage: https://github.com/graphiti-api/graphiti
331
340
  licenses:
332
341
  - MIT
333
342
  metadata: {}
334
- post_install_message:
343
+ post_install_message:
335
344
  rdoc_options: []
336
345
  require_paths:
337
346
  - lib
338
347
  required_ruby_version: !ruby/object:Gem::Requirement
339
348
  requirements:
340
- - - "~>"
349
+ - - ">="
341
350
  - !ruby/object:Gem::Version
342
- version: '2.3'
351
+ version: '2.6'
343
352
  required_rubygems_version: !ruby/object:Gem::Requirement
344
353
  requirements:
345
354
  - - ">="
346
355
  - !ruby/object:Gem::Version
347
356
  version: '0'
348
357
  requirements: []
349
- rubygems_version: 3.0.6
350
- signing_key:
358
+ rubygems_version: 3.3.7
359
+ signing_key:
351
360
  specification_version: 4
352
361
  summary: Easily build jsonapi.org-compatible APIs
353
362
  test_files: []
data/.travis.yml DELETED
@@ -1,59 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.5
5
- - 2.6
6
- gemfile:
7
- - Gemfile
8
- - gemfiles/rails_4.gemfile
9
- - gemfiles/rails_5.gemfile
10
- - gemfiles/rails_6.gemfile
11
- - gemfiles/rails_5_graphiti_rails.gemfile
12
- - gemfiles/rails_6_graphiti_rails.gemfile
13
- env:
14
- - COMMAND=standardrb --no-fix --format progress
15
- - COMMAND=rspec
16
- - COMMAND=rspec APPRAISAL_INITIALIZED=true
17
- matrix:
18
- exclude:
19
- - env: COMMAND=standardrb --no-fix --format progress
20
- gemfile: gemfiles/rails_4.gemfile
21
- - env: COMMAND=standardrb --no-fix --format progress
22
- gemfile: gemfiles/rails_5.gemfile
23
- - env: COMMAND=standardrb --no-fix --format progress
24
- gemfile: gemfiles/rails_6.gemfile
25
- - env: COMMAND=standardrb --no-fix --format progress
26
- gemfile: gemfiles/rails_5_graphiti_rails.gemfile
27
- - env: COMMAND=standardrb --no-fix --format progress
28
- gemfile: gemfiles/rails_6_graphiti_rails.gemfile
29
- - env: COMMAND=rspec APPRAISAL_INITIALIZED=true
30
- gemfile: Gemfile
31
- - env: COMMAND=rspec
32
- gemfile: gemfiles/rails_4.gemfile
33
- - env: COMMAND=rspec
34
- gemfile: gemfiles/rails_5.gemfile
35
- - env: COMMAND=rspec
36
- gemfile: gemfiles/rails_6.gemfile
37
- - env: COMMAND=rspec
38
- gemfile: gemfiles/rails_5_graphiti_rails.gemfile
39
- - env: COMMAND=rspec
40
- gemfile: gemfiles/rails_6_graphiti_rails.gemfile
41
- - gemfile: gemfiles/rails_4.gemfile
42
- rvm: 2.5
43
- - gemfile: gemfiles/rails_4.gemfile
44
- rvm: 2.6
45
-
46
- script:
47
- - bundle _1.17.3_ exec $COMMAND
48
-
49
- install: bundle _1.17.3_ install --retry=3 --jobs=3
50
- before_install:
51
- - gem install bundler -v '1.17.3'
52
- deploy:
53
- provider: rubygems
54
- api_key:
55
- secure: aON6EPWgHZXVQs+n/glMjPJ5kMpeR25khDpYlFIM0Ggf2+xuT/yRMtGbNTYnB01v/v2s9tNWK6QlMGARCbKz/W6WS8VNwFxs4DO1IPY3XoyF8QaPlXVKfBLldjUoVx61zL5xtcv8uZqWT1ATY+DjHW3nQ875ss/GW8tw+UASG1uUEuPCE9z+rNa3xYnm2qSZOwhFWqs5bHRQcc3gF3O8Hy8r4aosYTAlYOSeGDToqTUq1Ws21dV4xnIo97Nhmh9SYBQcKpZk1qF9bUz4zqdKsDKAxHMJRShtILmhPxNpIqE5ZV0+Xt+cnwi11AZDhSgfoUqYO9t2uG562luAqTnEZEQl+Lmc+nx4nJTH6tcR3ri301k0O+qDZ3PgSojJvrUuNC8DDLbbsVJNHYycGOLclqQq1aNbgz9HayEE5s+AyklPcprJhngxA5WP80AtONAxxLt4OjrY0X80TvOi2b5nfIN7DowGmcLbRahnms98Yk6/i1vCNV4R9bO0AaqpGLV+L8sVp98Qquk2mpvB3Le4W89qm5int1y2FNJbgInBpY1UOsI3wLENt0npC1X/KVMJKkpHvk80rGccI5FIVRUDZ3YD77hi+s1busPSVQ/+l4QdTFHmWp13Pghf6hNaIwfNwFMHwM2Fkv8YXa4c1mWc1cY5WP1ELS8cEnjtmp/9Iuc=
56
- gem: graphiti
57
- on:
58
- tags: true
59
- repo: graphiti-api/graphiti