graphiti-activegraph 0.1.15 → 0.1.16

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: e2edafb17b2501ff89298dacbccad4dd910a4858dd745e72e13d22413fff516d
4
- data.tar.gz: 8f673d1994493e1ddb9ac250e9d2525d63cf723008c8020c34cc45beeee097c0
3
+ metadata.gz: 9794607d787979d0f7569abd80b40212eec9aedaaa93f176561ff1aef80a914f
4
+ data.tar.gz: 5827cbf1af92884fcb487d799883b3e1df1ea9ef7081aab68c404c96f895338f
5
5
  SHA512:
6
- metadata.gz: 71c4679cc8af12fa8a6300b5b931b2d3192fb2cf403aeb9bb83f3675d64bb27956f117bfbc09ead957285571a1b18ba4e5c069e3217aafe4f457601d780aa9d1
7
- data.tar.gz: e5b6556f6fad1c08c4741c807431b39339daa2ec5e7ede0673188d362d44593d65d2e88060429dbf39c0c338a5098628c4228bfe02f1f255415a017ee321cbff
6
+ metadata.gz: a81ef5aff8b2dd3e4617ced5388014eb847c230dd34722c00f630cd7ba1cf81789eb16268bec8e5e446771ee68c79a0a06f9f9792579d7b4503657b4cd319a8e
7
+ data.tar.gz: 59cdd93ef290594ea2682bec8cf16da095ae534d9a027036409fde5dd817734e0ecfa10e7c9220121f78132659295893b857e476c5f2c6d0018319ab62b18047
@@ -0,0 +1,31 @@
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
+ contents: read
14
+
15
+ jobs:
16
+ test:
17
+ runs-on: ubuntu-latest
18
+ strategy:
19
+ fail-fast: false
20
+ matrix:
21
+ ruby-version: [ jruby, ruby ]
22
+
23
+ steps:
24
+ - uses: actions/checkout@v3
25
+ - name: Set up Ruby
26
+ uses: ruby/setup-ruby@v1
27
+ with:
28
+ ruby-version: ${{ matrix.ruby-version }}
29
+ bundler-cache: true
30
+ - name: Run tests
31
+ run: bundle exec rspec
@@ -16,18 +16,15 @@ Gem::Specification.new do |spec|
16
16
  spec.bindir = "exe"
17
17
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
18
  spec.require_paths = ["lib"]
19
- spec.required_ruby_version = "~> 2.3"
20
19
 
21
- spec.add_dependency "graphiti", "~> 1.2.0"
22
- spec.add_dependency "concurrent-ruby", "~> 1.0"
23
- spec.add_dependency "activesupport", ">= 4.1"
20
+ spec.add_dependency "graphiti", ">= 1.2.0"
21
+ spec.add_dependency "activegraph", ">= 11.1.0.alpha.1"
24
22
  spec.add_dependency "zeitwerk"
25
23
 
26
24
  spec.add_development_dependency "faraday", "~> 0.15"
27
25
  spec.add_development_dependency "kaminari", "~> 0.17"
28
26
  spec.add_development_dependency "bundler"
29
27
  spec.add_development_dependency "rake", "~> 10.0"
30
- spec.add_development_dependency "activemodel", ">= 4.1"
31
28
  spec.add_development_dependency "graphiti_spec_helpers", "1.0.beta.4"
32
29
  spec.add_development_dependency "standard"
33
30
  spec.add_development_dependency "rspec", "~> 3.9.0"
@@ -91,7 +91,7 @@ module Graphiti::ActiveGraph
91
91
  params[:data][:relationships] ||= {}
92
92
  params[:data][:relationships][rel_name] = {
93
93
  data: {
94
- type: rel_name.to_s,
94
+ type: derive_resource_type(rel_name),
95
95
  id: path_value.to_i
96
96
  }
97
97
  }
@@ -122,7 +122,29 @@ module Graphiti::ActiveGraph
122
122
  end
123
123
 
124
124
  def detect_conflict(key, path_value, body_value)
125
- raise Conflict.new(key, path_value, body_value) if body_value && body_value != path_value
125
+ raise Conflict.new(key, path_value, body_value) if path_value && body_value && body_value != path_value
126
+ end
127
+
128
+ private
129
+
130
+ def derive_resource_type(rel_name)
131
+ if @model.include?(ActiveGraph::Node)
132
+ @model.associations[rel_name].target_class.model_name.plural.to_s
133
+ else
134
+ # ApplicationRelationship resource doesn't have #associations or any other method to list all associations
135
+ # "from_class" and "to_class" methods can contain value "any". Which makes it unreliable to use here
136
+ # Using "rel_name.to_s.pluralize" as it works in most cases.
137
+ # User can define a method on controller "" which will override this behaviour
138
+ derive_resource_type_from_controller(rel_name) || rel_name.to_s.pluralize
139
+ end
140
+ end
141
+
142
+ def derive_resource_type_from_controller(rel_name)
143
+ controller_obj.derive_parent_resource_type(rel_name) if controller_obj.respond_to?(:derive_parent_resource_type)
144
+ end
145
+
146
+ def controller_obj
147
+ @controller_obj ||= Graphiti.context[:object]
126
148
  end
127
149
  end
128
150
  end
@@ -1,5 +1,5 @@
1
1
  module Graphiti
2
2
  module ActiveGraph
3
- VERSION = '0.1.15'
3
+ VERSION = '0.1.16'
4
4
  end
5
5
  end
@@ -1,31 +1,18 @@
1
1
  require 'zeitwerk'
2
+ require 'active_graph'
2
3
 
3
- # Workaround for missing zeitwerk support as of jruby-9.2.13.0
4
+ # Workaround for jruby prepend issue https://github.com/jruby/jruby/issues/6971
4
5
  module Graphiti
5
- module Scoping
6
- end
7
6
  module ActiveGraph
8
- module Scoping
9
- end
10
- module Adapters
11
- end
12
- module Util
13
- end
14
- module JsonapiExt
15
- module Serializable
16
- end
17
- end
7
+ end
8
+ module Scoping
18
9
  end
19
10
  end
20
- # End workaround
21
-
22
- # Workaround for jruby prepend issue https://github.com/jruby/jruby/issues/6971
23
11
  require 'graphiti/scoping/filterable'
24
12
  require 'graphiti/resource/persistence'
25
13
  # End workaround for jruby prepend issue
26
14
 
27
- loader = Zeitwerk::Loader.for_gem
28
- loader.inflector.inflect 'version' => 'VERSION'
15
+ loader = Zeitwerk::Loader.for_gem(warn_on_extra_files: false)
29
16
  loader.ignore(File.expand_path('graphiti-activegraph.rb', __dir__))
30
17
  loader.setup
31
18
 
metadata CHANGED
@@ -1,57 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphiti-activegraph
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.15
4
+ version: 0.1.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hardik Joshi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-22 00:00:00.000000000 Z
11
+ date: 2022-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: graphiti
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 1.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.2.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: concurrent-ruby
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '1.0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '1.0'
41
- - !ruby/object:Gem::Dependency
42
- name: activesupport
28
+ name: activegraph
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - ">="
46
32
  - !ruby/object:Gem::Version
47
- version: '4.1'
33
+ version: 11.1.0.alpha.1
48
34
  type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - ">="
53
39
  - !ruby/object:Gem::Version
54
- version: '4.1'
40
+ version: 11.1.0.alpha.1
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: zeitwerk
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -122,20 +108,6 @@ dependencies:
122
108
  - - "~>"
123
109
  - !ruby/object:Gem::Version
124
110
  version: '10.0'
125
- - !ruby/object:Gem::Dependency
126
- name: activemodel
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '4.1'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '4.1'
139
111
  - !ruby/object:Gem::Dependency
140
112
  name: graphiti_spec_helpers
141
113
  requirement: !ruby/object:Gem::Requirement
@@ -185,9 +157,9 @@ executables: []
185
157
  extensions: []
186
158
  extra_rdoc_files: []
187
159
  files:
160
+ - ".github/workflows/specs.yml"
188
161
  - ".gitignore"
189
162
  - ".rspec"
190
- - ".travis.yml"
191
163
  - CHANGELOG.md
192
164
  - Gemfile
193
165
  - LICENSE.txt
@@ -222,9 +194,9 @@ require_paths:
222
194
  - lib
223
195
  required_ruby_version: !ruby/object:Gem::Requirement
224
196
  requirements:
225
- - - "~>"
197
+ - - ">="
226
198
  - !ruby/object:Gem::Version
227
- version: '2.3'
199
+ version: '0'
228
200
  required_rubygems_version: !ruby/object:Gem::Requirement
229
201
  requirements:
230
202
  - - ">="
data/.travis.yml DELETED
@@ -1,11 +0,0 @@
1
- ---
2
- dist: xenial
3
- language: ruby
4
- jdk:
5
- - openjdk11
6
- cache: bundler
7
- rvm:
8
- - 2.7.1
9
- - jruby-9.2.16.0
10
- - jruby-9.3.2.0
11
- script: 'bundle exec rspec'