goldiloader 5.2.2 → 5.3.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/goldiloader/active_record_patches.rb +12 -8
- data/lib/goldiloader/compatibility.rb +5 -0
- data/lib/goldiloader/version.rb +1 -1
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f884bb718c29de33bdabce3826ecd6f8551ce9cdbb4089ce604ee7c7ac49b49
|
4
|
+
data.tar.gz: 32edcdf13f8a4027f2803e6ed485f441b0e2e8589f4f9db9bff914dd237069ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55682f49532c821dc4b0658e05d2aadc4922d38492fe240510fcb1f0c87fdc2dff3bd4eab8a4de398f12ee34032e6648e39b17e28d938a74f5c617184a59e0e4
|
7
|
+
data.tar.gz: a42db8caf9b803b6ef2f6dc11e74018e212e06cb24d1b644760e03b325224a63ad63393f348071319a4970de219e42e93d93a483249ec350faa432d85a14d6e4
|
@@ -56,7 +56,11 @@ module Goldiloader
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def auto_include_value=(value)
|
59
|
-
|
59
|
+
if ::Goldiloader::Compatibility.pre_rails_7_2?
|
60
|
+
assert_mutability!
|
61
|
+
else
|
62
|
+
assert_modifiable!
|
63
|
+
end
|
60
64
|
@values[:auto_include] = value
|
61
65
|
end
|
62
66
|
end
|
@@ -148,7 +152,7 @@ module Goldiloader
|
|
148
152
|
module SingularAssociationPatch
|
149
153
|
private
|
150
154
|
|
151
|
-
def find_target(
|
155
|
+
def find_target(...)
|
152
156
|
load_with_auto_include { super }
|
153
157
|
end
|
154
158
|
end
|
@@ -157,13 +161,13 @@ module Goldiloader
|
|
157
161
|
module CollectionAssociationPatch
|
158
162
|
# Force these methods to load the entire association for fully_load associations
|
159
163
|
[:size, :ids_reader, :empty?].each do |method|
|
160
|
-
define_method(method) do |*args, &block|
|
164
|
+
define_method(method) do |*args, **kwargs, &block|
|
161
165
|
load_target if fully_load?
|
162
|
-
super(*args, &block)
|
166
|
+
super(*args, **kwargs, &block)
|
163
167
|
end
|
164
168
|
end
|
165
169
|
|
166
|
-
def load_target(
|
170
|
+
def load_target(...)
|
167
171
|
load_with_auto_include { super }
|
168
172
|
end
|
169
173
|
|
@@ -199,14 +203,14 @@ module Goldiloader
|
|
199
203
|
module CollectionProxyPatch
|
200
204
|
# The CollectionProxy just forwards exists? to the underlying scope so we need to intercept this and
|
201
205
|
# force it to use size which handles fully_load properly.
|
202
|
-
def exists?(*args)
|
206
|
+
def exists?(*args, **kwargs)
|
203
207
|
# We don't fully_load the association when arguments are passed to exists? since Rails always
|
204
208
|
# pushes this query into the database without any caching (and it likely not a common
|
205
209
|
# scenario worth optimizing).
|
206
|
-
if args.empty? && @association.fully_load?
|
210
|
+
if args.empty? && kwargs.empty? && @association.fully_load?
|
207
211
|
size > 0
|
208
212
|
else
|
209
|
-
scope.exists?(*args)
|
213
|
+
scope.exists?(*args, **kwargs)
|
210
214
|
end
|
211
215
|
end
|
212
216
|
end
|
@@ -13,5 +13,10 @@ module Goldiloader
|
|
13
13
|
def self.rails_6_1_or_greater?
|
14
14
|
::ActiveRecord::VERSION::MAJOR > 6 || rails_6_1?
|
15
15
|
end
|
16
|
+
|
17
|
+
def self.pre_rails_7_2?
|
18
|
+
::ActiveRecord::VERSION::MAJOR < 7 ||
|
19
|
+
(::ActiveRecord::VERSION::MAJOR == 7 && ::ActiveRecord::VERSION::MINOR < 2)
|
20
|
+
end
|
16
21
|
end
|
17
22
|
end
|
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.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joel Turkel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '6.1'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
22
|
+
version: '8'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: '6.1'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
32
|
+
version: '8'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: activesupport
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
version: '6.1'
|
40
40
|
- - "<"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
42
|
+
version: '8'
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -49,7 +49,7 @@ dependencies:
|
|
49
49
|
version: '6.1'
|
50
50
|
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: '
|
52
|
+
version: '8'
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: appraisal
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,7 +115,7 @@ dependencies:
|
|
115
115
|
version: '6.1'
|
116
116
|
- - "<"
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version: '
|
118
|
+
version: '8.1'
|
119
119
|
type: :development
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -125,7 +125,7 @@ dependencies:
|
|
125
125
|
version: '6.1'
|
126
126
|
- - "<"
|
127
127
|
- !ruby/object:Gem::Version
|
128
|
-
version: '
|
128
|
+
version: '8.1'
|
129
129
|
- !ruby/object:Gem::Dependency
|
130
130
|
name: rake
|
131
131
|
requirement: !ruby/object:Gem::Requirement
|
@@ -214,16 +214,16 @@ dependencies:
|
|
214
214
|
name: sqlite3
|
215
215
|
requirement: !ruby/object:Gem::Requirement
|
216
216
|
requirements:
|
217
|
-
- - "
|
217
|
+
- - "~>"
|
218
218
|
- !ruby/object:Gem::Version
|
219
|
-
version: '0'
|
219
|
+
version: '2.0'
|
220
220
|
type: :development
|
221
221
|
prerelease: false
|
222
222
|
version_requirements: !ruby/object:Gem::Requirement
|
223
223
|
requirements:
|
224
|
-
- - "
|
224
|
+
- - "~>"
|
225
225
|
- !ruby/object:Gem::Version
|
226
|
-
version: '0'
|
226
|
+
version: '2.0'
|
227
227
|
description: Automatically eager loads Rails associations as associations are traversed
|
228
228
|
email:
|
229
229
|
- jturkel@salsify.com
|