goldiloader 5.2.0 → 5.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3e2c97d263d32b7fb6d2f2e9486f780c835ea50d63746983fb0eb6c39322b9db
4
- data.tar.gz: 1b9e51a04b471e59b5e8900c14518c392d1d87e7530ec421cca53603d9df6939
3
+ metadata.gz: 7ef809faf0ae768be18614302b3095863c0dce6ad5bdead11429a8968f39fef8
4
+ data.tar.gz: 7f4343a5a6065412c374c86c101dae7ed794b48bdfa8b5ff1765c7f9e2445c5f
5
5
  SHA512:
6
- metadata.gz: 8ef1fc2b11be83c5f7557bf4ed7b30aa7b3eb1ecd71e710558b21591ce05bda8a09d51cc2ef1c2026817bd20bccbe6ede8c9a7636eda07b6945acb814b6cacdc
7
- data.tar.gz: db3bf812806fad8e6c6d2c2afdbb2be6883e524a81a62447c8a04b5a2ac0ec9c80a67568a2a8ece2563172cbadaa7dac67e410217678041cbecf601e1da1292e
6
+ metadata.gz: 4747e4da90b4bb33bf8533d6101f0906e069085cc6987d178204f69afe23a55d5f81c387ee32757e6ba4d12479744a2bd121b8e0306a1774ba92f6451535fc2c
7
+ data.tar.gz: beaffcdef50baad23534537413a6217ad815d4cec10eb196713a27a83d59b68ed0a2a09b65aa5452fc76018f0e19c5b9136c4e260597655f72e0bc917ee519a0
@@ -177,7 +177,20 @@ module Goldiloader
177
177
  def auto_include?
178
178
  # Only auto include through associations if the target association is auto-loadable
179
179
  through_association = owner.association(through_reflection.name)
180
- through_association.auto_include? && super
180
+ auto_include_self = super
181
+
182
+ # If the current association cannot be auto-included there is nothing we can do
183
+ return false unless auto_include_self
184
+
185
+ # If the through association can just be auto-included we're good
186
+ return true if through_association.auto_include?
187
+
188
+ # If the through association was already loaded and does not contain new, changed, or destroyed records
189
+ # we are also able to auto-include the association. It means it has only already been read or changes are
190
+ # already persisted.
191
+ through_association.loaded? && Array.wrap(through_association.target).none? do |record|
192
+ record.new_record? || record.changed? || record.destroyed?
193
+ end
181
194
  end
182
195
  end
183
196
  ::ActiveRecord::Associations::HasManyThroughAssociation.prepend(::Goldiloader::ThroughAssociationPatch)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Goldiloader
4
- VERSION = '5.2.0'
4
+ VERSION = '5.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: 5.2.0
4
+ version: 5.2.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: 2023-12-14 00:00:00.000000000 Z
11
+ date: 2024-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord