graphiti-activegraph 0.1.25 → 0.2.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.
- checksums.yaml +4 -4
- data/.github/workflows/specs.yml +1 -1
- data/CHANGELOG.md +11 -0
- data/graphiti-activegraph.gemspec +17 -25
- data/lib/graphiti/active_graph/adapters/active_graph/function_sideload.rb +0 -8
- data/lib/graphiti/active_graph/concerns/path_relationships.rb +44 -0
- data/lib/graphiti/active_graph/deserializer.rb +32 -41
- data/lib/graphiti/active_graph/extensions/grouping/params.rb +52 -0
- data/lib/graphiti/active_graph/extensions/query_params.rb +27 -0
- data/lib/graphiti/active_graph/request_validators/validator.rb +9 -0
- data/lib/graphiti/active_graph/resource/interface.rb +1 -1
- data/lib/graphiti/active_graph/resource_proxy.rb +2 -0
- data/lib/graphiti/active_graph/version.rb +1 -1
- data/lib/graphiti-activegraph.rb +1 -1
- metadata +28 -108
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba0c3b914198cabc31276a535e428887a5ff15ff557d3dbf1f40f7ef63d463ce
|
4
|
+
data.tar.gz: 29c6bcff84e546779872c7cd197727f8ecaad1a12ece312a5032e93cd90c3060
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d930274a4203b73d77a50281c1091e4a4e5cf0bb0b467398dab4b3e2edd59daa60e63d31250941f1c373d04e9136a46bcb2c80b7cd2a0b29dfd685691e4c64f
|
7
|
+
data.tar.gz: bb3211192ac37a29c578ab71076e57995ddb7768f233a571428c9088989e8b773d36536f6a8f1d9f4d13154c0bfe53aedd3e5916507451641aded67b83f7d36a
|
data/.github/workflows/specs.yml
CHANGED
@@ -18,7 +18,7 @@ jobs:
|
|
18
18
|
strategy:
|
19
19
|
fail-fast: false
|
20
20
|
matrix:
|
21
|
-
ruby-version: [ jruby ]
|
21
|
+
ruby-version: [ jruby, ruby ]
|
22
22
|
env:
|
23
23
|
JRUBY_OPTS: --debug -J-Xmx1280m -Xcompile.invokedynamic=false -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -Xcompile.mode=OFF
|
24
24
|
steps:
|
data/CHANGELOG.md
CHANGED
@@ -62,6 +62,17 @@ Features:
|
|
62
62
|
|
63
63
|
- 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.
|
64
64
|
|
65
|
+
## 0.2.0 (01-24-2025)
|
66
|
+
|
67
|
+
Features:
|
68
|
+
|
69
|
+
- Added MRI support
|
70
|
+
- Added support for rails 8
|
71
|
+
|
72
|
+
Breaking changes:
|
73
|
+
|
74
|
+
- Removed support for graphiti <= 1.6.3
|
75
|
+
|
65
76
|
<!-- ### [version (DD-MM-YYYY)] -->
|
66
77
|
<!-- Breaking changes:-->
|
67
78
|
<!-- Features:-->
|
@@ -1,36 +1,28 @@
|
|
1
|
-
lib = File.expand_path(
|
1
|
+
lib = File.expand_path('../lib', __FILE__)
|
2
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require
|
3
|
+
require 'graphiti/active_graph/version'
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
|
-
spec.name =
|
6
|
+
spec.name = 'graphiti-activegraph'
|
7
7
|
spec.version = Graphiti::ActiveGraph::VERSION
|
8
|
-
spec.authors = [
|
9
|
-
spec.email = [
|
8
|
+
spec.authors = ['Hardik Joshi']
|
9
|
+
spec.email = ['hardikjoshi1991@gmail.com']
|
10
10
|
|
11
|
-
spec.summary =
|
12
|
-
spec.homepage =
|
13
|
-
spec.license =
|
11
|
+
spec.summary = 'Easily build jsonapi.org-compatible APIs for GraphDB'
|
12
|
+
spec.homepage = 'https://github.com/mrhardikjoshi/graphiti-activegraph'
|
13
|
+
spec.license = 'MIT'
|
14
14
|
|
15
15
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
16
|
-
spec.bindir =
|
16
|
+
spec.bindir = 'exe'
|
17
17
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
18
|
-
spec.require_paths = [
|
18
|
+
spec.require_paths = ['lib']
|
19
19
|
|
20
|
-
spec.add_dependency
|
21
|
-
spec.add_dependency
|
22
|
-
spec.add_dependency "activesupport", ">= 6.0"
|
23
|
-
spec.add_dependency "zeitwerk"
|
20
|
+
spec.add_dependency 'graphiti', '>= 1.6.4'
|
21
|
+
spec.add_dependency 'activegraph', '>= 12.0.0.beta.5'
|
24
22
|
|
25
|
-
spec.add_development_dependency
|
26
|
-
spec.add_development_dependency
|
27
|
-
spec.add_development_dependency
|
28
|
-
|
29
|
-
|
30
|
-
spec.add_development_dependency "jar-dependencies", "~> 0.4.1"
|
31
|
-
spec.add_development_dependency "rake", "~> 10.0"
|
32
|
-
spec.add_development_dependency "graphiti_spec_helpers", "1.0.beta.4"
|
33
|
-
spec.add_development_dependency "standard"
|
34
|
-
spec.add_development_dependency "pry"
|
35
|
-
spec.add_development_dependency "rspec", "~> 3.9.0"
|
23
|
+
spec.add_development_dependency 'graphiti_spec_helpers', '>= 1.0.0'
|
24
|
+
spec.add_development_dependency 'standard'
|
25
|
+
spec.add_development_dependency 'pry'
|
26
|
+
spec.add_development_dependency 'rake', '>= 10.0'
|
27
|
+
spec.add_development_dependency 'rspec', '>= 3.9.0'
|
36
28
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Graphiti::ActiveGraph::Concerns
|
2
|
+
module PathRelationships
|
3
|
+
def add_path_id_to_relationships!(params)
|
4
|
+
return params if path_relationships_updated?
|
5
|
+
detect_conflict(:id, @params[:id]&.to_s, attributes[:id]&.to_s)
|
6
|
+
path_map.each do |rel_name, path_value|
|
7
|
+
body_value = relationships.dig(rel_name, :attributes, :id)
|
8
|
+
if body_value
|
9
|
+
detect_conflict(rel_name, path_value&.to_s, body_value&.to_s)
|
10
|
+
else
|
11
|
+
update_params(params, rel_name, path_value)
|
12
|
+
update_realationships(rel_name, path_value)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
path_relationships_updated!
|
16
|
+
params
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def path_relationships_updated!
|
22
|
+
@path_relationships_updated = true
|
23
|
+
end
|
24
|
+
|
25
|
+
def path_relationships_updated?
|
26
|
+
@path_relationships_updated.present?
|
27
|
+
end
|
28
|
+
|
29
|
+
def update_params(params, rel_name, path_value)
|
30
|
+
params[:data] ||= {}
|
31
|
+
params[:data][:relationships] ||= {}
|
32
|
+
params[:data][:relationships][rel_name] = {
|
33
|
+
data: {
|
34
|
+
type: derive_resource_type(rel_name),
|
35
|
+
id: path_value
|
36
|
+
}
|
37
|
+
}
|
38
|
+
end
|
39
|
+
|
40
|
+
def update_realationships(rel_name, path_value)
|
41
|
+
relationships[rel_name] = { meta: {}, attributes: { id: path_value } }
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -1,5 +1,7 @@
|
|
1
1
|
module Graphiti::ActiveGraph
|
2
|
-
|
2
|
+
class Deserializer < Graphiti::Deserializer
|
3
|
+
include Concerns::PathRelationships
|
4
|
+
|
3
5
|
class Conflict < StandardError
|
4
6
|
attr_reader :key, :path_value, :body_value
|
5
7
|
|
@@ -14,13 +16,33 @@ module Graphiti::ActiveGraph
|
|
14
16
|
end
|
15
17
|
end
|
16
18
|
|
17
|
-
def initialize(payload, env=nil, model=nil, parent_map=nil)
|
19
|
+
def initialize(payload, env = nil, model = nil, parent_map = nil)
|
18
20
|
super(payload)
|
19
21
|
|
20
22
|
@params = payload
|
21
23
|
@model = model
|
22
24
|
@parent_map = parent_map || {}
|
23
25
|
@env = env
|
26
|
+
|
27
|
+
return unless data.blank? && env && parsable_content?
|
28
|
+
|
29
|
+
raise ArgumentError, "JSON API payload must contain the 'data' key"
|
30
|
+
end
|
31
|
+
|
32
|
+
def process_relationship_datum(datum)
|
33
|
+
{
|
34
|
+
meta: {
|
35
|
+
jsonapi_type: datum[:type],
|
36
|
+
temp_id: datum[:'temp-id'],
|
37
|
+
method: datum[:method]&.to_sym
|
38
|
+
},
|
39
|
+
attributes: datum[:id] ? { id: datum[:id] } : {},
|
40
|
+
relationships: {}
|
41
|
+
}
|
42
|
+
end
|
43
|
+
|
44
|
+
def meta_params
|
45
|
+
data[:meta] || {}
|
24
46
|
end
|
25
47
|
|
26
48
|
def process_relationships(relationship_hash)
|
@@ -33,6 +55,10 @@ module Graphiti::ActiveGraph
|
|
33
55
|
end
|
34
56
|
end
|
35
57
|
|
58
|
+
def relationship?(name)
|
59
|
+
relationships[name.to_sym].present?
|
60
|
+
end
|
61
|
+
|
36
62
|
# change empty relationship as `disassociate` hash so they will be removed
|
37
63
|
def process_nil_relationship(name)
|
38
64
|
attributes = {}
|
@@ -62,45 +88,6 @@ module Graphiti::ActiveGraph
|
|
62
88
|
results
|
63
89
|
end
|
64
90
|
|
65
|
-
def add_path_id_to_relationships!(params)
|
66
|
-
return params if path_relationships_updated?
|
67
|
-
detect_conflict(:id, @params[:id]&.to_s, attributes[:id]&.to_s)
|
68
|
-
path_map.each do |rel_name, path_value|
|
69
|
-
body_value = relationships.dig(rel_name, :attributes, :id)
|
70
|
-
if body_value
|
71
|
-
detect_conflict(rel_name, path_value&.to_s, body_value&.to_s)
|
72
|
-
else
|
73
|
-
update_params(params, rel_name, path_value)
|
74
|
-
update_realationships(rel_name, path_value)
|
75
|
-
end
|
76
|
-
end
|
77
|
-
path_relationships_updated!
|
78
|
-
params
|
79
|
-
end
|
80
|
-
|
81
|
-
def path_relationships_updated!
|
82
|
-
@path_relationships_updated = true
|
83
|
-
end
|
84
|
-
|
85
|
-
def path_relationships_updated?
|
86
|
-
@path_relationships_updated.present?
|
87
|
-
end
|
88
|
-
|
89
|
-
def update_params(params, rel_name, path_value)
|
90
|
-
params[:data] ||= {}
|
91
|
-
params[:data][:relationships] ||= {}
|
92
|
-
params[:data][:relationships][rel_name] = {
|
93
|
-
data: {
|
94
|
-
type: derive_resource_type(rel_name),
|
95
|
-
id: path_value
|
96
|
-
}
|
97
|
-
}
|
98
|
-
end
|
99
|
-
|
100
|
-
def update_realationships(rel_name, path_value)
|
101
|
-
relationships[rel_name] = { meta: {}, attributes: { id: path_value } }
|
102
|
-
end
|
103
|
-
|
104
91
|
def path_map
|
105
92
|
map = @params.select { |key, _| key =~ /_id$/ }.permit!.to_h
|
106
93
|
map = filter_keys(map) { |key| key.gsub(/_id$/, '').to_sym }
|
@@ -127,6 +114,10 @@ module Graphiti::ActiveGraph
|
|
127
114
|
|
128
115
|
private
|
129
116
|
|
117
|
+
def parsable_content?
|
118
|
+
true
|
119
|
+
end
|
120
|
+
|
130
121
|
def derive_resource_type(rel_name)
|
131
122
|
if @model.include?(ActiveGraph::Node)
|
132
123
|
@model.associations[rel_name].target_class.model_name.plural.to_s
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Graphiti::ActiveGraph::Extensions::Grouping
|
2
|
+
class Params
|
3
|
+
attr_reader :params, :grouping_criteria_list, :resource_class
|
4
|
+
def initialize(params, resource_class)
|
5
|
+
@params = params
|
6
|
+
@grouping_criteria_list = params.fetch(:group_by, nil)&.split(',') || []
|
7
|
+
@resource_class = resource_class
|
8
|
+
end
|
9
|
+
|
10
|
+
def single_grouping_criteria?
|
11
|
+
grouping_criteria_list.size < 2
|
12
|
+
end
|
13
|
+
|
14
|
+
def grouping_criteria_on_attribute?
|
15
|
+
grouping_criteria_list.any? { |criteria| ends_with_attribute?(resource_class.model, criteria) }
|
16
|
+
end
|
17
|
+
|
18
|
+
def empty?
|
19
|
+
grouping_criteria_list.empty?
|
20
|
+
end
|
21
|
+
|
22
|
+
def ends_with_attribute?(model, criteria)
|
23
|
+
return false if criteria.blank?
|
24
|
+
|
25
|
+
last_segment_attribute?(model, criteria.split('.'))
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def last_segment_attribute?(model, segments)
|
31
|
+
last_segment = segments.last
|
32
|
+
intermediate_model = traverse_to_last_associated_model(model, segments[0...-1])
|
33
|
+
|
34
|
+
intermediate_model && attribute?(intermediate_model, last_segment)
|
35
|
+
end
|
36
|
+
|
37
|
+
def traverse_to_last_associated_model(model, intermediate_segments)
|
38
|
+
intermediate_segments.each do |segment|
|
39
|
+
return false unless(model = associated_model(model, segment))
|
40
|
+
end
|
41
|
+
model
|
42
|
+
end
|
43
|
+
|
44
|
+
def attribute?(model, segment)
|
45
|
+
model.attribute_names.include?(segment)
|
46
|
+
end
|
47
|
+
|
48
|
+
def associated_model(model, segment)
|
49
|
+
model.associations[segment.to_sym]&.target_class
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Graphiti::ActiveGraph::Extensions
|
2
|
+
class QueryParams
|
3
|
+
attr_reader :params, :grouping_extra_params, :resource_class
|
4
|
+
|
5
|
+
def initialize(params, resource_class, grouping_extra_params: {})
|
6
|
+
@params = params
|
7
|
+
@resource_class = resource_class
|
8
|
+
@grouping_extra_params = grouping_extra_params
|
9
|
+
end
|
10
|
+
|
11
|
+
def group_by
|
12
|
+
Grouping::Params.new(params, resource_class)
|
13
|
+
end
|
14
|
+
|
15
|
+
def group_by_params
|
16
|
+
group_by_params_hash unless group_by.empty?
|
17
|
+
end
|
18
|
+
|
19
|
+
def group_by_params_hash
|
20
|
+
{ group_by: group_by.grouping_criteria_list }.merge(grouping_extra_params)
|
21
|
+
end
|
22
|
+
|
23
|
+
def extra_field?(type, name)
|
24
|
+
params.dig(:extra_fields, type)&.include?(name.to_s)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -4,7 +4,7 @@ module Graphiti::ActiveGraph
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
class_methods do
|
6
6
|
def build(params, base_scope = nil, opts = {})
|
7
|
-
|
7
|
+
validate_request!(params)
|
8
8
|
runner = ::Graphiti::Runner.new(self, params)
|
9
9
|
runner.proxy(base_scope, { single: true, raise_on_missing: true }.merge(opts) )
|
10
10
|
end
|
@@ -26,6 +26,8 @@ module Graphiti::ActiveGraph
|
|
26
26
|
@single ? data_for_preloaded_record : data_for_preloaded_records
|
27
27
|
end
|
28
28
|
|
29
|
+
alias_method :resolve_data, :data
|
30
|
+
|
29
31
|
def data_for_preloaded_record
|
30
32
|
@preloaded = @preloaded.is_a?(Array) ? @preloaded[0] : @preloaded
|
31
33
|
@resource.decorate_record(@preloaded)
|
data/lib/graphiti-activegraph.rb
CHANGED
@@ -27,7 +27,6 @@ Graphiti::Scoping::Filter.prepend Graphiti::ActiveGraph::Scoping::Filter
|
|
27
27
|
Graphiti::Util::SerializerRelationship.prepend Graphiti::ActiveGraph::Util::SerializerRelationship
|
28
28
|
Graphiti::Util::SerializerAttribute.prepend Graphiti::ActiveGraph::Util::SerializerAttribute
|
29
29
|
Graphiti::Util::RelationshipPayload.prepend Graphiti::ActiveGraph::Util::RelationshipPayload
|
30
|
-
Graphiti::Deserializer.prepend Graphiti::ActiveGraph::Deserializer
|
31
30
|
Graphiti::Query.prepend Graphiti::ActiveGraph::Query
|
32
31
|
Graphiti::Resource.prepend Graphiti::ActiveGraph::ResourceInstanceMethods
|
33
32
|
Graphiti::Resource.extend Graphiti::ActiveGraph::Resource
|
@@ -35,6 +34,7 @@ Graphiti::ResourceProxy.prepend Graphiti::ActiveGraph::ResourceProxy
|
|
35
34
|
Graphiti::Runner.prepend Graphiti::ActiveGraph::Runner
|
36
35
|
Graphiti::Scope.prepend Graphiti::ActiveGraph::SideloadResolve
|
37
36
|
Graphiti::Configuration.include Graphiti::SidepostConfiguration
|
37
|
+
Graphiti::RequestValidators::Validator.prepend Graphiti::ActiveGraph::RequestValidators::Validator
|
38
38
|
|
39
39
|
# JSONAPI extensions
|
40
40
|
JSONAPI::Serializable::Resource.prepend Graphiti::ActiveGraph::JsonapiExt::Serializable::ResourceExt
|
metadata
CHANGED
@@ -1,106 +1,64 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphiti-activegraph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hardik Joshi
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-01-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: graphiti
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
17
|
- - ">="
|
17
18
|
- !ruby/object:Gem::Version
|
18
|
-
version: 1.
|
19
|
-
name: graphiti
|
19
|
+
version: 1.6.4
|
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
|
-
version: 1.
|
26
|
+
version: 1.6.4
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
requirement: !ruby/object:Gem::Requirement
|
29
|
-
requirements:
|
30
|
-
- - "~>"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 12.0.0.beta.4
|
33
28
|
name: activegraph
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 12.0.0.beta.4
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
29
|
requirement: !ruby/object:Gem::Requirement
|
43
30
|
requirements:
|
44
31
|
- - ">="
|
45
32
|
- !ruby/object:Gem::Version
|
46
|
-
version:
|
47
|
-
name: activesupport
|
33
|
+
version: 12.0.0.beta.5
|
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:
|
40
|
+
version: 12.0.0.beta.5
|
55
41
|
- !ruby/object:Gem::Dependency
|
42
|
+
name: graphiti_spec_helpers
|
56
43
|
requirement: !ruby/object:Gem::Requirement
|
57
44
|
requirements:
|
58
45
|
- - ">="
|
59
46
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
61
|
-
name: zeitwerk
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
requirement: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - "~>"
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: '0.15'
|
75
|
-
name: faraday
|
47
|
+
version: 1.0.0
|
76
48
|
type: :development
|
77
49
|
prerelease: false
|
78
50
|
version_requirements: !ruby/object:Gem::Requirement
|
79
51
|
requirements:
|
80
|
-
- - "
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0.15'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
requirement: !ruby/object:Gem::Requirement
|
85
|
-
requirements:
|
86
|
-
- - "~>"
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '0.17'
|
89
|
-
name: kaminari
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
52
|
+
- - ">="
|
95
53
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
54
|
+
version: 1.0.0
|
97
55
|
- !ruby/object:Gem::Dependency
|
56
|
+
name: standard
|
98
57
|
requirement: !ruby/object:Gem::Requirement
|
99
58
|
requirements:
|
100
59
|
- - ">="
|
101
60
|
- !ruby/object:Gem::Version
|
102
61
|
version: '0'
|
103
|
-
name: bundler
|
104
62
|
type: :development
|
105
63
|
prerelease: false
|
106
64
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -109,54 +67,12 @@ dependencies:
|
|
109
67
|
- !ruby/object:Gem::Version
|
110
68
|
version: '0'
|
111
69
|
- !ruby/object:Gem::Dependency
|
112
|
-
|
113
|
-
requirements:
|
114
|
-
- - "~>"
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: 0.4.1
|
117
|
-
name: jar-dependencies
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: 0.4.1
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
requirement: !ruby/object:Gem::Requirement
|
127
|
-
requirements:
|
128
|
-
- - "~>"
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version: '10.0'
|
131
|
-
name: rake
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - "~>"
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '10.0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
requirement: !ruby/object:Gem::Requirement
|
141
|
-
requirements:
|
142
|
-
- - '='
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version: 1.0.beta.4
|
145
|
-
name: graphiti_spec_helpers
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - '='
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: 1.0.beta.4
|
153
|
-
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry
|
154
71
|
requirement: !ruby/object:Gem::Requirement
|
155
72
|
requirements:
|
156
73
|
- - ">="
|
157
74
|
- !ruby/object:Gem::Version
|
158
75
|
version: '0'
|
159
|
-
name: standard
|
160
76
|
type: :development
|
161
77
|
prerelease: false
|
162
78
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -165,34 +81,34 @@ dependencies:
|
|
165
81
|
- !ruby/object:Gem::Version
|
166
82
|
version: '0'
|
167
83
|
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake
|
168
85
|
requirement: !ruby/object:Gem::Requirement
|
169
86
|
requirements:
|
170
87
|
- - ">="
|
171
88
|
- !ruby/object:Gem::Version
|
172
|
-
version: '0'
|
173
|
-
name: pry
|
89
|
+
version: '10.0'
|
174
90
|
type: :development
|
175
91
|
prerelease: false
|
176
92
|
version_requirements: !ruby/object:Gem::Requirement
|
177
93
|
requirements:
|
178
94
|
- - ">="
|
179
95
|
- !ruby/object:Gem::Version
|
180
|
-
version: '0'
|
96
|
+
version: '10.0'
|
181
97
|
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
182
99
|
requirement: !ruby/object:Gem::Requirement
|
183
100
|
requirements:
|
184
|
-
- - "
|
101
|
+
- - ">="
|
185
102
|
- !ruby/object:Gem::Version
|
186
103
|
version: 3.9.0
|
187
|
-
name: rspec
|
188
104
|
type: :development
|
189
105
|
prerelease: false
|
190
106
|
version_requirements: !ruby/object:Gem::Requirement
|
191
107
|
requirements:
|
192
|
-
- - "
|
108
|
+
- - ">="
|
193
109
|
- !ruby/object:Gem::Version
|
194
110
|
version: 3.9.0
|
195
|
-
description:
|
111
|
+
description:
|
196
112
|
email:
|
197
113
|
- hardikjoshi1991@gmail.com
|
198
114
|
executables: []
|
@@ -213,9 +129,13 @@ files:
|
|
213
129
|
- lib/graphiti/active_graph/adapters/active_graph/has_one_sideload.rb
|
214
130
|
- lib/graphiti/active_graph/adapters/active_graph/polymorphic_belongs_to.rb
|
215
131
|
- lib/graphiti/active_graph/adapters/active_graph/sideload.rb
|
132
|
+
- lib/graphiti/active_graph/concerns/path_relationships.rb
|
216
133
|
- lib/graphiti/active_graph/deserializer.rb
|
134
|
+
- lib/graphiti/active_graph/extensions/grouping/params.rb
|
135
|
+
- lib/graphiti/active_graph/extensions/query_params.rb
|
217
136
|
- lib/graphiti/active_graph/jsonapi_ext/serializable/resource_ext.rb
|
218
137
|
- lib/graphiti/active_graph/query.rb
|
138
|
+
- lib/graphiti/active_graph/request_validators/validator.rb
|
219
139
|
- lib/graphiti/active_graph/resource.rb
|
220
140
|
- lib/graphiti/active_graph/resource/interface.rb
|
221
141
|
- lib/graphiti/active_graph/resource/persistence.rb
|
@@ -233,7 +153,7 @@ homepage: https://github.com/mrhardikjoshi/graphiti-activegraph
|
|
233
153
|
licenses:
|
234
154
|
- MIT
|
235
155
|
metadata: {}
|
236
|
-
post_install_message:
|
156
|
+
post_install_message:
|
237
157
|
rdoc_options: []
|
238
158
|
require_paths:
|
239
159
|
- lib
|
@@ -248,8 +168,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
248
168
|
- !ruby/object:Gem::Version
|
249
169
|
version: '0'
|
250
170
|
requirements: []
|
251
|
-
rubygems_version: 3.3.
|
252
|
-
signing_key:
|
171
|
+
rubygems_version: 3.0.3.1
|
172
|
+
signing_key:
|
253
173
|
specification_version: 4
|
254
174
|
summary: Easily build jsonapi.org-compatible APIs for GraphDB
|
255
175
|
test_files: []
|