goldiloader 4.1.2 → 4.2.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: 14cd0ebc332f63f4f019029af0c75254207ad6b3957d3204b458200ffe89aa61
4
- data.tar.gz: 151fe68d70ebc800bd471204106d49e7208678b6f0d5e1495a08302859f8574d
3
+ metadata.gz: 4dad32fcba65c9784b6f3b21e8f477055d6511714173f0fe34ea9c61a7bb79b6
4
+ data.tar.gz: 8bf99537c6f893ebc042a416f4f77b522c854efc9250e89b45d0cda39099693f
5
5
  SHA512:
6
- metadata.gz: 4b387491503a50e6108c0fb3df8419eaea1032a302908afbaa0302582e37819250eecf569fb53c7eb29f4d204fe2d799b4fd0e5f71f9afc026b104370e5132b6
7
- data.tar.gz: 62554443b9814f9487f63a39e2cd6c0da8bd85fc0985fc87f078e21b812f91d453676c72db9794d8d40fb5d04edd3e7220cad9aaf2c7bb94c374604b6b8de815
6
+ metadata.gz: 411a75dea6931ffd45c3883cb6a8bffd6e5e69a7960763faea39bbb1deebe7ec8af961b0acc7c19dff01574b0507678d0359b19d88cbd50aa3bdaf98fb0bc05a
7
+ data.tar.gz: 67b0d0addd6bdef131cc8f5d0bad6f398653a61cdb91d7d3e18c8ef8b24bb91fac74c7c0d12e2755a87998e2e49ce55daa254671b8afd2c1a57e8611189caae0
@@ -173,7 +173,20 @@ module Goldiloader
173
173
  def auto_include?
174
174
  # Only auto include through associations if the target association is auto-loadable
175
175
  through_association = owner.association(through_reflection.name)
176
- through_association.auto_include? && super
176
+ auto_include_self = super
177
+
178
+ # If the current association cannot be auto-included there is nothing we can do
179
+ return false unless auto_include_self
180
+
181
+ # If the through association can just be auto-included we're good
182
+ return true if through_association.auto_include?
183
+
184
+ # If the through association was already loaded and does not contain new, changed, or destroyed records
185
+ # we are also able to auto-include the association. It means it has only already been read or changes are
186
+ # already persisted.
187
+ through_association.loaded? && Array.wrap(through_association.target).none? do |record|
188
+ record.new_record? || record.changed? || record.destroyed?
189
+ end
177
190
  end
178
191
  end
179
192
  ::ActiveRecord::Associations::HasManyThroughAssociation.prepend(::Goldiloader::ThroughAssociationPatch)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Goldiloader
4
- VERSION = '4.1.2'
4
+ VERSION = '4.2.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: 4.1.2
4
+ version: 4.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel Turkel
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-25 00:00:00.000000000 Z
11
+ date: 2024-05-30 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: '5.2'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '7.1'
22
+ version: '7.2'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '5.2'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '7.1'
32
+ version: '7.2'
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: '5.2'
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: '7.1'
42
+ version: '7.2'
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,29 +49,23 @@ dependencies:
49
49
  version: '5.2'
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: '7.1'
52
+ version: '7.2'
53
53
  - !ruby/object:Gem::Dependency
54
- name: activestorage
54
+ name: appraisal
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: '5.2'
60
- - - "<"
61
- - !ruby/object:Gem::Version
62
- version: '7.1'
59
+ version: '0'
63
60
  type: :development
64
61
  prerelease: false
65
62
  version_requirements: !ruby/object:Gem::Requirement
66
63
  requirements:
67
64
  - - ">="
68
65
  - !ruby/object:Gem::Version
69
- version: '5.2'
70
- - - "<"
71
- - !ruby/object:Gem::Version
72
- version: '7.1'
66
+ version: '0'
73
67
  - !ruby/object:Gem::Dependency
74
- name: appraisal
68
+ name: benchmark-ips
75
69
  requirement: !ruby/object:Gem::Requirement
76
70
  requirements:
77
71
  - - ">="
@@ -85,19 +79,19 @@ dependencies:
85
79
  - !ruby/object:Gem::Version
86
80
  version: '0'
87
81
  - !ruby/object:Gem::Dependency
88
- name: benchmark-ips
82
+ name: combustion
89
83
  requirement: !ruby/object:Gem::Requirement
90
84
  requirements:
91
- - - ">="
85
+ - - "~>"
92
86
  - !ruby/object:Gem::Version
93
- version: '0'
87
+ version: '1.3'
94
88
  type: :development
95
89
  prerelease: false
96
90
  version_requirements: !ruby/object:Gem::Requirement
97
91
  requirements:
98
- - - ">="
92
+ - - "~>"
99
93
  - !ruby/object:Gem::Version
100
- version: '0'
94
+ version: '1.3'
101
95
  - !ruby/object:Gem::Dependency
102
96
  name: coveralls_reborn
103
97
  requirement: !ruby/object:Gem::Requirement
@@ -113,21 +107,27 @@ dependencies:
113
107
  - !ruby/object:Gem::Version
114
108
  version: 0.18.0
115
109
  - !ruby/object:Gem::Dependency
116
- name: database_cleaner
110
+ name: rails
117
111
  requirement: !ruby/object:Gem::Requirement
118
112
  requirements:
119
113
  - - ">="
120
114
  - !ruby/object:Gem::Version
121
- version: '1.2'
115
+ version: '5.2'
116
+ - - "<"
117
+ - !ruby/object:Gem::Version
118
+ version: '7.2'
122
119
  type: :development
123
120
  prerelease: false
124
121
  version_requirements: !ruby/object:Gem::Requirement
125
122
  requirements:
126
123
  - - ">="
127
124
  - !ruby/object:Gem::Version
128
- version: '1.2'
125
+ version: '5.2'
126
+ - - "<"
127
+ - !ruby/object:Gem::Version
128
+ version: '7.2'
129
129
  - !ruby/object:Gem::Dependency
130
- name: mime-types
130
+ name: rake
131
131
  requirement: !ruby/object:Gem::Requirement
132
132
  requirements:
133
133
  - - ">="
@@ -141,35 +141,35 @@ dependencies:
141
141
  - !ruby/object:Gem::Version
142
142
  version: '0'
143
143
  - !ruby/object:Gem::Dependency
144
- name: rake
144
+ name: rspec
145
145
  requirement: !ruby/object:Gem::Requirement
146
146
  requirements:
147
- - - ">="
147
+ - - "~>"
148
148
  - !ruby/object:Gem::Version
149
- version: '0'
149
+ version: '3'
150
150
  type: :development
151
151
  prerelease: false
152
152
  version_requirements: !ruby/object:Gem::Requirement
153
153
  requirements:
154
- - - ">="
154
+ - - "~>"
155
155
  - !ruby/object:Gem::Version
156
- version: '0'
156
+ version: '3'
157
157
  - !ruby/object:Gem::Dependency
158
- name: rspec
158
+ name: rspec_junit_formatter
159
159
  requirement: !ruby/object:Gem::Requirement
160
160
  requirements:
161
- - - "~>"
161
+ - - ">="
162
162
  - !ruby/object:Gem::Version
163
- version: '3'
163
+ version: '0'
164
164
  type: :development
165
165
  prerelease: false
166
166
  version_requirements: !ruby/object:Gem::Requirement
167
167
  requirements:
168
- - - "~>"
168
+ - - ">="
169
169
  - !ruby/object:Gem::Version
170
- version: '3'
170
+ version: '0'
171
171
  - !ruby/object:Gem::Dependency
172
- name: rspec_junit_formatter
172
+ name: rspec-rails
173
173
  requirement: !ruby/object:Gem::Requirement
174
174
  requirements:
175
175
  - - ">="
@@ -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: '1.3'
219
+ version: '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: '1.3'
226
+ version: '0'
227
227
  description: Automatically eager loads Rails associations as associations are traversed
228
228
  email:
229
229
  - jturkel@salsify.com
@@ -248,7 +248,9 @@ metadata:
248
248
  changelog_uri: https://github.com/salsify/goldiloader/blob/master/CHANGELOG.md
249
249
  source_code_uri: https://github.com/salsify/goldiloader/
250
250
  bug_tracker_uri: https://github.com/salsify/goldiloader/issues
251
- post_install_message:
251
+ allowed_push_host: https://rubygems.org
252
+ rubygems_mfa_required: 'true'
253
+ post_install_message:
252
254
  rdoc_options: []
253
255
  require_paths:
254
256
  - lib
@@ -263,8 +265,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
263
265
  - !ruby/object:Gem::Version
264
266
  version: '0'
265
267
  requirements: []
266
- rubygems_version: 3.1.4
267
- signing_key:
268
+ rubygems_version: 3.3.26
269
+ signing_key:
268
270
  specification_version: 4
269
271
  summary: Automatic Rails association eager loading
270
272
  test_files: []