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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e922f46493ed724f6da746c0c940fda408a79bdf37a8213a63ff2d0a73782d16
4
- data.tar.gz: d6a0e0bcb412979d4b07c0c2864ee2a7b3756079a6b6e2383af3b072a6290e44
3
+ metadata.gz: 1f884bb718c29de33bdabce3826ecd6f8551ce9cdbb4089ce604ee7c7ac49b49
4
+ data.tar.gz: 32edcdf13f8a4027f2803e6ed485f441b0e2e8589f4f9db9bff914dd237069ef
5
5
  SHA512:
6
- metadata.gz: f2b1bfd0f1e6677f701ebe92082932e8ba9dcef5f537631d08be9b20b1d4b453c66eab281116e998a93d5018d6ed529a25aee3ddf362fe92aad6cbed6423d8c2
7
- data.tar.gz: 4a1a2e6ea0a9b34cfee1d24e43d3bdf1984b0388922b37943c06e29da41588f67df8d10622b9cc91515afa623dbe3a56070957d6b9b21f8e709ca74a01643c2d
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
- assert_mutability!
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(*args)
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(*args)
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Goldiloader
4
- VERSION = '5.2.2'
4
+ VERSION = '5.3.1'
5
5
  end
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.2.2
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-04-10 00:00:00.000000000 Z
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: '7.2'
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: '7.2'
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: '7.2'
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: '7.2'
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: '7.2'
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: '7.2'
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