graphiti-activegraph 1.3.1 → 1.3.2

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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/specs.yml +58 -59
  3. data/.gitignore +59 -59
  4. data/.hound.yml +4 -0
  5. data/.rspec +1 -1
  6. data/.rubocop.yml +3 -0
  7. data/CHANGELOG.md +58 -54
  8. data/CHANGELOG_PRE_1.0.0.md +70 -70
  9. data/Gemfile +3 -3
  10. data/LICENSE.txt +21 -21
  11. data/README.md +130 -130
  12. data/docs/deserializer.md +40 -40
  13. data/graphiti-activegraph.gemspec +34 -34
  14. data/lib/graphiti/active_graph/adapters/active_graph/function_sideload.rb +7 -7
  15. data/lib/graphiti/active_graph/adapters/active_graph/has_many_sideload.rb +7 -7
  16. data/lib/graphiti/active_graph/adapters/active_graph/has_one_sideload.rb +7 -7
  17. data/lib/graphiti/active_graph/adapters/active_graph/polymorphic_belongs_to.rb +11 -11
  18. data/lib/graphiti/active_graph/adapters/active_graph/sideload.rb +26 -26
  19. data/lib/graphiti/active_graph/adapters/active_graph.rb +183 -183
  20. data/lib/graphiti/active_graph/concerns/path_relationships.rb +44 -44
  21. data/lib/graphiti/active_graph/concerns/relationships.rb +15 -15
  22. data/lib/graphiti/active_graph/deserializer.rb +138 -138
  23. data/lib/graphiti/active_graph/extensions/context.rb +17 -17
  24. data/lib/graphiti/active_graph/extensions/grouping/params.rb +101 -52
  25. data/lib/graphiti/active_graph/extensions/query_dsl/performer.rb +38 -38
  26. data/lib/graphiti/active_graph/extensions/query_dsl/query_generator.rb +20 -20
  27. data/lib/graphiti/active_graph/extensions/query_params.rb +27 -27
  28. data/lib/graphiti/active_graph/extensions/resources/authorizationable.rb +29 -29
  29. data/lib/graphiti/active_graph/extensions/resources/payload_combinable.rb +24 -24
  30. data/lib/graphiti/active_graph/extensions/resources/preloadable.rb +19 -19
  31. data/lib/graphiti/active_graph/extensions/resources/rel.rb +19 -19
  32. data/lib/graphiti/active_graph/jsonapi_ext/include_directive.rb +66 -66
  33. data/lib/graphiti/active_graph/jsonapi_ext/serializable/resource_ext.rb +8 -8
  34. data/lib/graphiti/active_graph/query.rb +76 -76
  35. data/lib/graphiti/active_graph/request_validators/validator.rb +9 -9
  36. data/lib/graphiti/active_graph/resource.rb +103 -103
  37. data/lib/graphiti/active_graph/resource_proxy.rb +86 -86
  38. data/lib/graphiti/active_graph/resources/interface.rb +14 -14
  39. data/lib/graphiti/active_graph/resources/persistence.rb +25 -25
  40. data/lib/graphiti/active_graph/runner.rb +39 -39
  41. data/lib/graphiti/active_graph/scope.rb +28 -28
  42. data/lib/graphiti/active_graph/scoping/association_eager_load.rb +34 -34
  43. data/lib/graphiti/active_graph/scoping/filter.rb +49 -49
  44. data/lib/graphiti/active_graph/scoping/filterable.rb +12 -12
  45. data/lib/graphiti/active_graph/scoping/include.rb +48 -48
  46. data/lib/graphiti/active_graph/scoping/internal/extra_field_normalizer.rb +76 -76
  47. data/lib/graphiti/active_graph/scoping/internal/include_normalizer.rb +82 -82
  48. data/lib/graphiti/active_graph/scoping/internal/path_descriptor.rb +94 -94
  49. data/lib/graphiti/active_graph/scoping/internal/sort_normalizer.rb +54 -54
  50. data/lib/graphiti/active_graph/scoping/internal/sorting_aliases.rb +35 -35
  51. data/lib/graphiti/active_graph/scoping/internal/sparse_fields_eagerloading.rb +28 -28
  52. data/lib/graphiti/active_graph/serializer.rb +15 -15
  53. data/lib/graphiti/active_graph/sideload_resolve.rb +119 -119
  54. data/lib/graphiti/active_graph/util/parsers/rel_chain.rb +27 -27
  55. data/lib/graphiti/active_graph/util/relationship_payload.rb +33 -33
  56. data/lib/graphiti/active_graph/util/serializer_attribute.rb +17 -17
  57. data/lib/graphiti/active_graph/util/serializer_relationship.rb +28 -28
  58. data/lib/graphiti/active_graph/util/transformers/relation_param.rb +56 -56
  59. data/lib/graphiti/active_graph/version.rb +5 -5
  60. data/lib/graphiti/sidepost_configuration.rb +9 -9
  61. data/lib/graphiti-activegraph.rb +43 -43
  62. metadata +5 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99c8c00fe58ed3146c7feae681bac89ec82989b09f88dfa97aa6a54ef7e9930b
4
- data.tar.gz: c21e632e4fa1a4f6b24315c01c76d89f91158ae9996a73cdf6da83e97805e2ce
3
+ metadata.gz: a63f1b1a90940e2048db02a4230724f8f6d1f058b2a282223ea3603d71573ed2
4
+ data.tar.gz: b48f9232554ac22a93f02ab64067ca03e5d0a4543e50dde6247cce96efed0487
5
5
  SHA512:
6
- metadata.gz: 8942c7a92552d7554cdc78e5183b970bab9c6d9cee23e5d21e23244c84c45491bbd5a3085671cde7919ca3f7e531cd2e7c6388f0ad367cecc430b77597c0db9c
7
- data.tar.gz: e31a9631f62d743899851ea815c2158c801f550a5d7ec86eafab260045441fbbd84813f0c5511f9cadc3ad2a7fe8b750d315effc65cbc46866235d31f136731a
6
+ metadata.gz: a226d733cfa0cae9b61d8289cf0d611b319138a942d9aa80592d51931ce412e389d25fc373541e3769bd89a7f022630453ee27d68d6285508ade6b9e9ab60276
7
+ data.tar.gz: a7a33a9e87f699b26e2a3703f4c827e100dd1a2d59ac1551f929e67798659f20ab88e5b5718fc1dedbdeca130d86babb506215525ad194db4da2352e7e32c28a
@@ -1,59 +1,58 @@
1
- name: Specs
2
-
3
- on:
4
- push:
5
- branches: [ "master" ]
6
- pull_request:
7
- branches: [ "master" ]
8
-
9
- # Allows you to run this workflow manually from the Actions tab
10
- workflow_dispatch:
11
-
12
- permissions:
13
- actions: write
14
- contents: read
15
-
16
- jobs:
17
- test:
18
- runs-on: ubuntu-latest
19
- permissions:
20
- id-token: write
21
- strategy:
22
- fail-fast: false
23
- matrix:
24
- ruby-version: [ ruby-3.4.2, ruby-3.3.7, ruby-3.2.7 ] # Removed 'jruby' till https://github.com/jruby/jruby/issues/8642 is fixed
25
- neo4j: [ 5.23.0 ]
26
- include:
27
- - ruby: jruby
28
- java-version: 17
29
- env:
30
- JRUBY_OPTS: --debug -J-Xmx1280m -Xcompile.invokedynamic=false -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -Xcompile.mode=OFF
31
- steps:
32
- - name: Start neo4j
33
- run: docker run --name neo4j --env NEO4J_AUTH=neo4j/password --env NEO4J_ACCEPT_LICENSE_AGREEMENT=yes --env NEO4J_dbms_directories_import= -p7687:7687 -p7474:7474 -v `pwd`/tmp:/var/lib/neo4j/import --rm neo4j:${{ matrix.neo4j }}-enterprise &
34
-
35
- - uses: actions/checkout@v3
36
-
37
- - name: Set up Ruby
38
- uses: ruby/setup-ruby@v1
39
- with:
40
- ruby-version: ${{ matrix.ruby-version }}
41
- bundler-cache: true
42
-
43
- - name: Set up Java
44
- uses: actions/setup-java@v4
45
- if: matrix.java-version
46
- with:
47
- distribution: 'temurin'
48
- java-version: ${{ matrix.java-version }}
49
-
50
- - name: Wait for neo4j
51
- run: while [ $((curl localhost:7474/ > /dev/null 2>&1); echo $?) -ne 0 ]; do sleep 1; done
52
-
53
- - name: Run tests
54
- run: bundle exec rspec
55
-
56
- - uses: qltysh/qlty-action/coverage@v1
57
- with:
58
- oidc: true
59
- files: coverage/coverage.json
1
+ name: Specs
2
+
3
+ on:
4
+ push:
5
+ branches: [ "master" ]
6
+ pull_request:
7
+ branches: [ "master" ]
8
+
9
+ # Allows you to run this workflow manually from the Actions tab
10
+ workflow_dispatch:
11
+
12
+ permissions:
13
+ actions: write
14
+ contents: read
15
+
16
+ jobs:
17
+ test:
18
+ runs-on: ubuntu-latest
19
+
20
+ strategy:
21
+ fail-fast: false
22
+ matrix:
23
+ ruby-version: [ '3.4'] # Removed 'jruby' till https://github.com/jruby/jruby/issues/8642 is fixed
24
+ neo4j: [ '5.26.0', '5.23.0' ]
25
+ include:
26
+ - ruby: jruby
27
+ java-version: 17
28
+ env:
29
+ JRUBY_OPTS: --debug -J-Xmx1280m -Xcompile.invokedynamic=false -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -Xcompile.mode=OFF
30
+ steps:
31
+ - name: Start neo4j
32
+ run: docker run --name neo4j --env NEO4J_AUTH=neo4j/password --env NEO4J_ACCEPT_LICENSE_AGREEMENT=yes --env NEO4J_dbms_directories_import= -p7687:7687 -p7474:7474 -v `pwd`/tmp:/var/lib/neo4j/import --rm neo4j:${{ matrix.neo4j }}-enterprise &
33
+
34
+ - uses: actions/checkout@v3
35
+
36
+ - name: Set up Ruby
37
+ uses: ruby/setup-ruby@v1
38
+ with:
39
+ ruby-version: ${{ matrix.ruby-version }}
40
+ bundler-cache: true
41
+
42
+ - name: Set up Java
43
+ uses: actions/setup-java@v4
44
+ if: matrix.java-version
45
+ with:
46
+ distribution: 'temurin'
47
+ java-version: ${{ matrix.java-version }}
48
+
49
+ - name: Wait for neo4j
50
+ run: while [ $((curl localhost:7474/ > /dev/null 2>&1); echo $?) -ne 0 ]; do sleep 1; done
51
+
52
+ - name: Run tests
53
+ run: bundle exec rspec
54
+
55
+ - name: Upload coverage reports to Codecov
56
+ uses: codecov/codecov-action@v5
57
+ with:
58
+ token: ${{ secrets.CODECOV_TOKEN }}
data/.gitignore CHANGED
@@ -1,59 +1,59 @@
1
- *.gem
2
- *.rbc
3
- /.config
4
- /coverage/
5
- /InstalledFiles
6
- /pkg/
7
- /spec/reports/
8
- /spec/examples.txt
9
- /test/tmp/
10
- /test/version_tmp/
11
- /tmp/
12
-
13
- # Used by dotenv library to load environment variables.
14
- # .env
15
-
16
- # Ignore Byebug command history file.
17
- .byebug_history
18
-
19
- ## Specific to RubyMotion:
20
- .dat*
21
- .repl_history
22
- build/
23
- *.bridgesupport
24
- build-iPhoneOS/
25
- build-iPhoneSimulator/
26
-
27
- ## Specific to RubyMotion (use of CocoaPods):
28
- #
29
- # We recommend against adding the Pods directory to your .gitignore. However
30
- # you should judge for yourself, the pros and cons are mentioned at:
31
- # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
32
- #
33
- # vendor/Pods/
34
-
35
- ## Documentation cache and generated files:
36
- /.yardoc/
37
- /_yardoc/
38
- /doc/
39
- /rdoc/
40
-
41
- ## Environment normalization:
42
- /.bundle/
43
- /vendor/bundle
44
- /lib/bundler/man/
45
-
46
- # for a library or gem, you might want to ignore these files since the code is
47
- # intended to run in multiple environments; otherwise, check them in:
48
- /Gemfile.lock
49
- # .ruby-version
50
- # .ruby-gemset
51
-
52
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
53
- .rvmrc
54
-
55
- # RubyMine project files
56
- .idea
57
-
58
- # Used by RuboCop. Remote config files pulled in from inherit_from directive.
59
- # .rubocop-https?--*
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /spec/examples.txt
9
+ /test/tmp/
10
+ /test/version_tmp/
11
+ /tmp/
12
+
13
+ # Used by dotenv library to load environment variables.
14
+ # .env
15
+
16
+ # Ignore Byebug command history file.
17
+ .byebug_history
18
+
19
+ ## Specific to RubyMotion:
20
+ .dat*
21
+ .repl_history
22
+ build/
23
+ *.bridgesupport
24
+ build-iPhoneOS/
25
+ build-iPhoneSimulator/
26
+
27
+ ## Specific to RubyMotion (use of CocoaPods):
28
+ #
29
+ # We recommend against adding the Pods directory to your .gitignore. However
30
+ # you should judge for yourself, the pros and cons are mentioned at:
31
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
32
+ #
33
+ # vendor/Pods/
34
+
35
+ ## Documentation cache and generated files:
36
+ /.yardoc/
37
+ /_yardoc/
38
+ /doc/
39
+ /rdoc/
40
+
41
+ ## Environment normalization:
42
+ /.bundle/
43
+ /vendor/bundle
44
+ /lib/bundler/man/
45
+
46
+ # for a library or gem, you might want to ignore these files since the code is
47
+ # intended to run in multiple environments; otherwise, check them in:
48
+ /Gemfile.lock
49
+ # .ruby-version
50
+ # .ruby-gemset
51
+
52
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
53
+ .rvmrc
54
+
55
+ # RubyMine project files
56
+ .idea
57
+
58
+ # Used by RuboCop. Remote config files pulled in from inherit_from directive.
59
+ # .rubocop-https?--*
data/.hound.yml ADDED
@@ -0,0 +1,4 @@
1
+ rubocop:
2
+ enabled: true
3
+
4
+ fail_on_violations: true
data/.rspec CHANGED
@@ -1 +1 @@
1
- --require spec_helper
1
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,3 @@
1
+ require: standard
2
+ inherit_gem:
3
+ standard: config/base.yml
data/CHANGELOG.md CHANGED
@@ -1,54 +1,58 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [Unreleased]
9
-
10
- ## [1.3.1] - 2025-11-5
11
- ### Added
12
- - **Deserializer: relationship id(s) helpers**: introduced `relationship_id` and `relationship_ids` methods in `Deserializer` to fetch relationship id(s) by association name from request payload. (PR #49)
13
-
14
- ## [1.3.0] - 2025-10-13
15
- ### Added
16
- - **Extra fields preloading in main query**: Support preloading associations for `extra_fields` for main and sideloaded records. Adds `preload` option to `extra_attribute` in resource classes. Example: `extra_attribute :full_post_title, :string, preload: :author`. (PR #45)
17
- - **Extra fields preloading in separate query**: Collect IDs from the main query result and run a single separate query to load and calculate `extra_fields` values for all records. does not support preloading for deep sideloads. (PR #47)
18
-
19
- ## [1.2.0] - 2025-05-20
20
-
21
- ### Added
22
-
23
- - **Graphiti Compatibility**: Added support for Graphiti versions up to 1.8.x, fixing previously broken sideloading behavior.
24
-
25
- ### Fixed
26
-
27
- - **Serializer**: Resolved an issue where polymorphic resources were not functioning correctly in serializers.
28
-
29
- ## [1.1.0] - 2025-05-2
30
-
31
- ### Added
32
-
33
- - **Deep sideloading**: introduced Include scoping class to support deep sideloading using single query (e.g. include='author.posts')
34
- - **Deep sorting**: added SortNormalizer to support sorting by deep sideloaded resource's attribute (e.g. sort='author.posts.title')
35
- - **Links control**: Control the links(pagination and resource) in response via request query params (pagination_links=true|false, links=true|false)
36
-
37
- ## [1.0.0] - 2025-03-18
38
-
39
- ### Added
40
-
41
- - **MRI Support**: Introduced compatibility with MRI (Matz's Ruby Interpreter), expanding the gem's usability beyond JRuby (#38).
42
- - **Documentation Updates**: Expanded the README to provide clearer guidance on gem usage and integration (#38).
43
- - **Sideloading Workflow**: Enhanced scoping mechanisms and added support for eager loading associations to improve data retrieval efficiency and flexibility (#38).
44
-
45
- ### Changed
46
- - **Resource Class**: Instead of modifying the `Graphiti::Resource` class, we now define `Graphiti::ActiveGraph::Resource`,
47
- which must be inherited in all resource classes to enable ActiveGraph support (#38).
48
-
49
- ---
50
-
51
- *Note: For details on changes prior to version 1.0.0, please refer to the [`CHANGELOG_PRE_1.0.0.md`](CHANGELOG_PRE_1.0.0.md) file.*
52
-
53
- [unreleased]: https://github.com/mrhardikjoshi/graphiti-activegraph/compare/v1.0.0...master
54
- [1.0.0]: https://github.com/mrhardikjoshi/graphiti-activegraph/compare/9f837108ae57287c65b0f6fd2609dd56a95cd461...v1.0.0
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [1.3.2] - 2026-02-11
11
+ ### Changed
12
+ - **Grouping criteria**: parsing improved to ignore commas inside parentheses, allowing for more complex grouping criteria (e.g. group_by='custom_function(arg1,arg2),another_value'). Previous implementation would split the criteria at the comma inside the parentheses, leading to inability to pass the function call. (PR #51)
13
+
14
+ ## [1.3.1] - 2025-11-5
15
+ ### Added
16
+ - **Deserializer: relationship id(s) helpers**: introduced `relationship_id` and `relationship_ids` methods in `Deserializer` to fetch relationship id(s) by association name from request payload. (PR #49)
17
+
18
+ ## [1.3.0] - 2025-10-13
19
+ ### Added
20
+ - **Extra fields preloading in main query**: Support preloading associations for `extra_fields` for main and sideloaded records. Adds `preload` option to `extra_attribute` in resource classes. Example: `extra_attribute :full_post_title, :string, preload: :author`. (PR #45)
21
+ - **Extra fields preloading in separate query**: Collect IDs from the main query result and run a single separate query to load and calculate `extra_fields` values for all records. does not support preloading for deep sideloads. (PR #47)
22
+
23
+ ## [1.2.0] - 2025-05-20
24
+
25
+ ### Added
26
+
27
+ - **Graphiti Compatibility**: Added support for Graphiti versions up to 1.8.x, fixing previously broken sideloading behavior.
28
+
29
+ ### Fixed
30
+
31
+ - **Serializer**: Resolved an issue where polymorphic resources were not functioning correctly in serializers.
32
+
33
+ ## [1.1.0] - 2025-05-2
34
+
35
+ ### Added
36
+
37
+ - **Deep sideloading**: introduced Include scoping class to support deep sideloading using single query (e.g. include='author.posts')
38
+ - **Deep sorting**: added SortNormalizer to support sorting by deep sideloaded resource's attribute (e.g. sort='author.posts.title')
39
+ - **Links control**: Control the links(pagination and resource) in response via request query params (pagination_links=true|false, links=true|false)
40
+
41
+ ## [1.0.0] - 2025-03-18
42
+
43
+ ### Added
44
+
45
+ - **MRI Support**: Introduced compatibility with MRI (Matz's Ruby Interpreter), expanding the gem's usability beyond JRuby (#38).
46
+ - **Documentation Updates**: Expanded the README to provide clearer guidance on gem usage and integration (#38).
47
+ - **Sideloading Workflow**: Enhanced scoping mechanisms and added support for eager loading associations to improve data retrieval efficiency and flexibility (#38).
48
+
49
+ ### Changed
50
+ - **Resource Class**: Instead of modifying the `Graphiti::Resource` class, we now define `Graphiti::ActiveGraph::Resource`,
51
+ which must be inherited in all resource classes to enable ActiveGraph support (#38).
52
+
53
+ ---
54
+
55
+ *Note: For details on changes prior to version 1.0.0, please refer to the [`CHANGELOG_PRE_1.0.0.md`](CHANGELOG_PRE_1.0.0.md) file.*
56
+
57
+ [unreleased]: https://github.com/mrhardikjoshi/graphiti-activegraph/compare/v1.0.0...master
58
+ [1.0.0]: https://github.com/mrhardikjoshi/graphiti-activegraph/compare/9f837108ae57287c65b0f6fd2609dd56a95cd461...v1.0.0
@@ -1,70 +1,70 @@
1
- ## 0.1.8 (09-06-2021)
2
-
3
- Features:
4
-
5
- - Added support for polymorphic relationship.
6
-
7
- ## 0.1.13 (21-12-2021)
8
-
9
- Features:
10
-
11
- - Supports Jruby-9.3.2.0
12
-
13
- ## 0.1.14 (21-12-2021)
14
-
15
- Features:
16
-
17
- - Adding unpaginated query to resource proxy with preloaded records. This will help in getting count on API.
18
-
19
- ## 0.1.15 (21-06-2022)
20
-
21
- Features:
22
-
23
- - Relationships mentioned in sparse field param (and not in include), will now be returned in relationship block of response
24
-
25
- ## 0.1.20
26
-
27
- Features:
28
-
29
- - With graphiti config variable "allow_sidepost" you can allow/disallow sideposting, by default it is allowed.
30
-
31
- ## 0.1.21
32
-
33
- Fixes:
34
-
35
- - Runner#proxy keyword arguments
36
-
37
- ## 0.1.22
38
-
39
- Fixes:
40
-
41
- - when rendering preloaded resources, we were not applying scoping. Now we are skipping around_scoping callback too.
42
-
43
- ## 0.1.23 (29-04-2024)
44
-
45
- Features:
46
-
47
- - Added support for UUID
48
-
49
- ## 0.1.24 (18-06-2024)
50
-
51
- Features:
52
-
53
- - Added preliminary support for Sideload backed by function instead of model association
54
-
55
- ## 0.1.25 (04-12-2024)
56
-
57
- Features:
58
-
59
- - Added support to preload extra_fields for the main resource, replacing N+1 queries with a single query. This does not apply to sideloaded resources.
60
-
61
- ## 0.2.0 (01-24-2025)
62
-
63
- Features:
64
-
65
- - Added MRI support
66
- - Added support for rails 8
67
-
68
- Breaking changes:
69
-
70
- - Removed support for graphiti <= 1.6.3
1
+ ## 0.1.8 (09-06-2021)
2
+
3
+ Features:
4
+
5
+ - Added support for polymorphic relationship.
6
+
7
+ ## 0.1.13 (21-12-2021)
8
+
9
+ Features:
10
+
11
+ - Supports Jruby-9.3.2.0
12
+
13
+ ## 0.1.14 (21-12-2021)
14
+
15
+ Features:
16
+
17
+ - Adding unpaginated query to resource proxy with preloaded records. This will help in getting count on API.
18
+
19
+ ## 0.1.15 (21-06-2022)
20
+
21
+ Features:
22
+
23
+ - Relationships mentioned in sparse field param (and not in include), will now be returned in relationship block of response
24
+
25
+ ## 0.1.20
26
+
27
+ Features:
28
+
29
+ - With graphiti config variable "allow_sidepost" you can allow/disallow sideposting, by default it is allowed.
30
+
31
+ ## 0.1.21
32
+
33
+ Fixes:
34
+
35
+ - Runner#proxy keyword arguments
36
+
37
+ ## 0.1.22
38
+
39
+ Fixes:
40
+
41
+ - when rendering preloaded resources, we were not applying scoping. Now we are skipping around_scoping callback too.
42
+
43
+ ## 0.1.23 (29-04-2024)
44
+
45
+ Features:
46
+
47
+ - Added support for UUID
48
+
49
+ ## 0.1.24 (18-06-2024)
50
+
51
+ Features:
52
+
53
+ - Added preliminary support for Sideload backed by function instead of model association
54
+
55
+ ## 0.1.25 (04-12-2024)
56
+
57
+ Features:
58
+
59
+ - Added support to preload extra_fields for the main resource, replacing N+1 queries with a single query. This does not apply to sideloaded resources.
60
+
61
+ ## 0.2.0 (01-24-2025)
62
+
63
+ Features:
64
+
65
+ - Added MRI support
66
+ - Added support for rails 8
67
+
68
+ Breaking changes:
69
+
70
+ - Removed support for graphiti <= 1.6.3
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
data/LICENSE.txt CHANGED
@@ -1,21 +1,21 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2020 Hardik Joshi
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2020 Hardik Joshi
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.