deep_unrest 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 +4 -4
- data/lib/deep_unrest/version.rb +1 -1
- data/lib/deep_unrest.rb +14 -4
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e805e8e946507f8e9e3c7efc8699f45da9aeb6d1
|
4
|
+
data.tar.gz: 24dbd8cd92cac4fd34ce96c0ee7234a20773ccd1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e565d06c10f0d524d1f4e940ec125702704d28722ed86e8db399af34aacd08c5a2639e5fef76e544dbfd0809a515e9e6ee0ab7abcfa0bc178aa1439c6d774983
|
7
|
+
data.tar.gz: 957d530761f55e9aa9b9392efa38181a4627354c6f38f129a3c8c83cc4992c47bf078adb11785b9d053a82b8525c1f9c6699ba298263a35448bc86919cb955fd
|
data/lib/deep_unrest/version.rb
CHANGED
data/lib/deep_unrest.rb
CHANGED
@@ -5,11 +5,14 @@ require 'deep_unrest/engine'
|
|
5
5
|
# workaronud for rails bug with association indices.
|
6
6
|
# see https://github.com/rails/rails/pull/24728
|
7
7
|
module ActiveRecord
|
8
|
+
# monkey-patch
|
8
9
|
module AutosaveAssociation
|
9
10
|
# Returns the record for an association collection that should be validated
|
10
11
|
# or saved. If +autosave+ is +false+ only new records will be returned,
|
11
12
|
# unless the parent is/was a new record itself.
|
12
|
-
def associated_records_to_validate_or_save(association,
|
13
|
+
def associated_records_to_validate_or_save(association,
|
14
|
+
new_record,
|
15
|
+
autosave)
|
13
16
|
if new_record || autosave
|
14
17
|
association && association.target
|
15
18
|
else
|
@@ -290,9 +293,16 @@ module DeepUnrest
|
|
290
293
|
case v
|
291
294
|
when Array
|
292
295
|
h = v.each_with_object({}) do |item, memo|
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
+
if item.respond_to?(:key?) && item.key?(:id)
|
297
|
+
# this is a nested resource. merge as such
|
298
|
+
memo[item[:id]] ||= {}
|
299
|
+
memo[item[:id]].deeper_merge(item)
|
300
|
+
merge_siblings!(item)
|
301
|
+
else
|
302
|
+
# otherwise this is just a normal array
|
303
|
+
idx = memo.keys.size
|
304
|
+
memo[idx] = item
|
305
|
+
end
|
296
306
|
end
|
297
307
|
mutations[k] = h.values
|
298
308
|
when Hash
|