fume-aloader 0.1.2 → 0.1.3

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: 221e8b06fc2100e3c646ab82f32c36e527e018bc7a9873fea4c181278af483bb
4
- data.tar.gz: 2c5c8fee904a1f32e0b3b7f55512742ddbf2dac5c427d3779142243b0d8b135d
3
+ metadata.gz: 3d205f2e1934bebb8d922c2d17a5126b4a46d1f25897edbc82be331b3010e255
4
+ data.tar.gz: 37a54264eb5998a64bff6f9e400be6d1d2bcade3b5cc281add1687cbf88f9f0e
5
5
  SHA512:
6
- metadata.gz: 2dff7bb5abe0b7718f322efd12c965c1806e99875c71758893dc66010a3c81538ee8f4ad9becd714bf08bb1fa1dc6430c5afbb0d91862119caf850d056173b7c
7
- data.tar.gz: 3a59ef0c3ae2867a8480edaa84100cf2eaec0f8e8212152b1b79377bf0f8a9c784783fa655d590d9de410d641b993acb964170354b1a0d5538425def5052cea4
6
+ metadata.gz: 1b7192010a01bcc3cdc5ed17b91523d9f3b8135db14f6c7ef2a588bebf928eb83871115d89c548274dd999609f9cf59bd4c027250719c401b1b48ca82a2cdcfd
7
+ data.tar.gz: f4676daf7024f3b81eaa85599f1a2923de222027aefedac1cb9e499850eb87a09d6d7dd41afc0138577a8d2d054d19ae169e7bae909119792fecc851eb14a17b
@@ -44,7 +44,7 @@ module Fume::Aloader
44
44
  relationship = Relationship.build(klass, name)
45
45
  return if relationship.loader_is_inited?(record)
46
46
 
47
- options = active_preset[:attributes][name] || {}
47
+ options = active_preset.dig(:attributes, name) || {}
48
48
  loaders = relationship.loaders_init(self.records, options[:preset])
49
49
  (self.preload_values[name] || []).each do |args|
50
50
  loaders.each { |it| it.preload_all(*args) }
@@ -9,6 +9,11 @@ module Fume::Aloader
9
9
  initializer 'fume-aloader.configure_rails_initialization' do |app|
10
10
  ::ActiveRecord::Base.include(RecordAddons)
11
11
  ::ActiveRecord::Relation.prepend(RelationAddons)
12
+
13
+ # CollectionProxy is inhert from Relation, proxy back to Relation
14
+ ::ActiveRecord::Associations::CollectionProxy.class_eval do
15
+ delegate :al_to_scope, :aloader, to: :scope
16
+ end
12
17
  end
13
18
  end
14
19
  end
@@ -1,6 +1,5 @@
1
1
  module Fume::Aloader
2
2
  module RelationAddons
3
-
4
3
  attr_accessor :aloader
5
4
 
6
5
  def load(*args, &block)
@@ -11,7 +10,7 @@ module Fume::Aloader
11
10
  end
12
11
 
13
12
  def spawn(*args)
14
- result = super
13
+ result = already_in_scope? ? klass.all : clone
15
14
  result.aloader = nil
16
15
  result.al_init_loader
17
16
  result.aloader&.spawn_from(self.aloader) if self.aloader
@@ -47,9 +46,15 @@ module Fume::Aloader
47
46
  end
48
47
 
49
48
  def al_to_scope(preset = :default)
49
+ if self.is_a?(ActiveRecord::Associations::CollectionProxy)
50
+ scope.al_to_scope(preset)
51
+ return
52
+ end
53
+
50
54
  al_init_loader
51
55
  self.aloader.active(preset)
52
- self.aloader.apply_profile_scope_includes(self)
56
+ result = self.aloader.apply_profile_scope_includes(self)
57
+ result
53
58
  end
54
59
  end
55
60
  end
@@ -1,5 +1,5 @@
1
1
  module Fume
2
2
  module Aloader
3
- VERSION = "0.1.2"
3
+ VERSION = "0.1.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fume-aloader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - sunteya
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-07 00:00:00.000000000 Z
11
+ date: 2022-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails