goldiloader 5.1.0 → 5.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/lib/goldiloader/custom_preloads.rb +13 -2
- data/lib/goldiloader/version.rb +1 -1
- 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: 3e2c97d263d32b7fb6d2f2e9486f780c835ea50d63746983fb0eb6c39322b9db
|
4
|
+
data.tar.gz: 1b9e51a04b471e59b5e8900c14518c392d1d87e7530ec421cca53603d9df6939
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ef1fc2b11be83c5f7557bf4ed7b30aa7b3eb1ecd71e710558b21591ce05bda8a09d51cc2ef1c2026817bd20bccbe6ede8c9a7636eda07b6945acb814b6cacdc
|
7
|
+
data.tar.gz: db3bf812806fad8e6c6d2c2afdbb2be6883e524a81a62447c8a04b5a2ac0ec9c80a67568a2a8ece2563172cbadaa7dac67e410217678041cbecf601e1da1292e
|
@@ -10,7 +10,7 @@ module Goldiloader
|
|
10
10
|
def preloaded(model, cache_name:, key:, &block)
|
11
11
|
unless preloaded?(cache_name)
|
12
12
|
ids = models.map do |record|
|
13
|
-
record
|
13
|
+
key_from_record(record, key)
|
14
14
|
end
|
15
15
|
|
16
16
|
# We're using instance_exec instead of a simple yield to make sure that the
|
@@ -26,13 +26,24 @@ module Goldiloader
|
|
26
26
|
|
27
27
|
private
|
28
28
|
|
29
|
+
def key_from_record(record, key_or_key_list)
|
30
|
+
if key_or_key_list.is_a?(Array)
|
31
|
+
# allow passing an array of keys that will be collected from the record
|
32
|
+
key_or_key_list.map do |key|
|
33
|
+
record.public_send(key)
|
34
|
+
end
|
35
|
+
else
|
36
|
+
record.public_send(key_or_key_list)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
29
40
|
def store_preloaded(cache_name, preloaded_hash)
|
30
41
|
@custom_preloads ||= {}
|
31
42
|
@custom_preloads[cache_name] = preloaded_hash
|
32
43
|
end
|
33
44
|
|
34
45
|
def fetch_preloaded(cache_name, instance, key:)
|
35
|
-
@custom_preloads&.dig(cache_name, instance
|
46
|
+
@custom_preloads&.dig(cache_name, key_from_record(instance, key))
|
36
47
|
end
|
37
48
|
|
38
49
|
def preloaded?(cache_name)
|
data/lib/goldiloader/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: goldiloader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joel Turkel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|