graphiti-activegraph 0.1.15 → 0.1.16

Sign up to get free protection for your applications and to get access to all the features.
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'