iknow_view_models 3.14.0 → 3.14.1
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/lib/iknow_view_models/version.rb +1 -1
- data/lib/view_model/active_record.rb +5 -0
- data/lib/view_model.rb +18 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dfaa2071c1fc02ad4120eb77077aa261db93104814831dfa882c999048f4a557
|
4
|
+
data.tar.gz: 8af46af652b9170e6890864e8065d95ba4b3c48c4c1677542908a07297bd9f88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9a1e0088161dc9f347c4427486f10bb62f845a0121176382ea44296437a088550d38b532b4d9dd9e3aa7e6fbcd57e6be894a912de44e399a85d44c245236e67
|
7
|
+
data.tar.gz: 137ea0385c005c9380ef130539dc0b65e0b7a9485a8bc5d2f08c127e210f0d1bd43af410cd49e09617d6b836bd1ffd12d4b59d708cc4b44bf8cffe021fb63c02
|
data/lib/view_model.rb
CHANGED
@@ -337,11 +337,14 @@ class ViewModel
|
|
337
337
|
end
|
338
338
|
|
339
339
|
def preload_for_serialization(viewmodels, include_referenced: true, lock: nil)
|
340
|
-
Array.wrap(viewmodels)
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
340
|
+
Array.wrap(viewmodels)
|
341
|
+
.flat_map(&:preloadable_dependencies)
|
342
|
+
.group_by(&:class)
|
343
|
+
.each do |type, views|
|
344
|
+
DeepPreloader.preload(views.map(&:model),
|
345
|
+
type.eager_includes(include_referenced: include_referenced),
|
346
|
+
lock: lock)
|
347
|
+
end
|
345
348
|
end
|
346
349
|
end
|
347
350
|
|
@@ -423,8 +426,16 @@ class ViewModel
|
|
423
426
|
context.for_child(self, association_name: member_name)
|
424
427
|
end
|
425
428
|
|
426
|
-
def preload_for_serialization(lock: nil)
|
427
|
-
ViewModel.preload_for_serialization([self], lock: lock)
|
429
|
+
def preload_for_serialization(include_referenced: true, lock: nil)
|
430
|
+
ViewModel.preload_for_serialization([self], include_referenced: include_referenced, lock: lock)
|
431
|
+
end
|
432
|
+
|
433
|
+
# Returns a collection of zero or more AR-backed views that this view depends
|
434
|
+
# on that can have their dependencies preloaded via `eager_includes`. This can
|
435
|
+
# be overridden for non-AR view that wrap AR-backed views to expose those
|
436
|
+
# dependencies for preloading.
|
437
|
+
def preloadable_dependencies
|
438
|
+
[]
|
428
439
|
end
|
429
440
|
|
430
441
|
def ==(other)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iknow_view_models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.14.
|
4
|
+
version: 3.14.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- iKnow Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-08-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionpack
|