jsonapi_compliable 0.11.26 → 0.11.27
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd319c54a4ba9b170f855b7fa6096fba621d9899
|
4
|
+
data.tar.gz: 3f114d62e1af153fb8b0a54075a4974673103e2c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1c1992697517db3a0fbf36595d501672bddb1f33b5355c29a480118db270f0591d9573202f0ec8104e3e5e2106877c9b271e11854b049a4af749aed33447082
|
7
|
+
data.tar.gz: a79ab173ff26b5a5eb17cffc9b50da7ae2164012cc7bc96d0c4cacdb35638bdb5dd0a9ba16307b60bd3262bdb0a3f2dff7b130fc3be7c8982ea4632918635ffe
|
@@ -11,9 +11,10 @@ module JsonapiCompliable
|
|
11
11
|
end
|
12
12
|
|
13
13
|
assign do |parents, children|
|
14
|
+
children_hash = children.group_by(&foreign_key)
|
14
15
|
parents.each do |parent|
|
15
16
|
parent.association(association_name).loaded!
|
16
|
-
relevant_children =
|
17
|
+
relevant_children = children_hash[parent.send(primary_key)] || []
|
17
18
|
relevant_children.each do |c|
|
18
19
|
parent.association(association_name).add_to_target(c, :skip_callbacks)
|
19
20
|
end
|
@@ -34,8 +35,9 @@ module JsonapiCompliable
|
|
34
35
|
end
|
35
36
|
|
36
37
|
assign do |parents, children|
|
38
|
+
children_hash = children.index_by(&primary_key)
|
37
39
|
parents.each do |parent|
|
38
|
-
relevant_child =
|
40
|
+
relevant_child = children_hash[parent.send(foreign_key)]
|
39
41
|
parent.send(:"#{association_name}=", relevant_child)
|
40
42
|
end
|
41
43
|
end
|
@@ -62,10 +64,12 @@ module JsonapiCompliable
|
|
62
64
|
# remove anything else. This is more or less what AR does.
|
63
65
|
assign do |parents, children|
|
64
66
|
assigned = []
|
67
|
+
children_hash = children.group_by(&foreign_key)
|
65
68
|
parents.each do |parent|
|
66
69
|
parent.association(association_name).loaded!
|
67
|
-
|
68
|
-
next unless
|
70
|
+
relevant_children = children_hash[parent.send(primary_key)]
|
71
|
+
next unless relevant_children
|
72
|
+
relevant_child = relevant_children.first
|
69
73
|
|
70
74
|
# Use private methods because of Rails bug
|
71
75
|
# https://github.com/rails/rails/issues/32886
|
@@ -75,9 +79,7 @@ module JsonapiCompliable
|
|
75
79
|
association.send(:target=, relevant_child)
|
76
80
|
assigned << relevant_child
|
77
81
|
end
|
78
|
-
(
|
79
|
-
children.delete(unassigned)
|
80
|
-
end
|
82
|
+
children.replace(assigned)
|
81
83
|
end
|
82
84
|
|
83
85
|
instance_eval(&blk) if blk
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jsonapi_compliable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.27
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lee Richmond
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-08-
|
12
|
+
date: 2018-08-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: jsonapi-serializable
|