ar_lazy_preload 0.2.1 → 0.2.2

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: 44023d59df2053b73589d7b0baadad0933047105fb38986462347ce9c03414b6
4
- data.tar.gz: fc4f589d5fec1c1731f82f5b43a3fe379f795445456721db5c6140190d3669a8
3
+ metadata.gz: ebe08f38d60625bee24c8ec26f8eb8d3381118f4c81f68e79abd047237d7a27e
4
+ data.tar.gz: 9d1665b388bba47dda01e592cd4dbcfaeb6b8aa3cafbd047b92628f651431e72
5
5
  SHA512:
6
- metadata.gz: 1b434e21ffab60c6008dfb85c9825d0534d635ae464052bcce0544cd6d2fee81b02ec9a9e4a26d542a46f18209efcb03c971f68ca0964b807d3a6e64ec2ca1f7
7
- data.tar.gz: e12171b02fd58053e8e189e95a2178cdddb163ac225b134b298f9a2f872117e8edcd7c0119d84e60e7d99f355e3f58bb7f9976d76a9e515edc435aaf1c95da98
6
+ metadata.gz: '089fe899897758c02c19e31b85edbe71ad6e1df28e727017a32ae5518ea01c6a86a9438e8ff4d99ffbd6f4c5c6cb92e8480b823bd4e9c023da15328aae66cc3c'
7
+ data.tar.gz: 381a082c5f96b9927d81effb0ed577b63f709e110344e241c7c278509785b0954bc553dfdb0cfd3531e71da61d9f9f111c7e61b469ae2eacd61c60ca6c5b106e
data/Rakefile CHANGED
@@ -1,3 +1,4 @@
1
+ require "appraisal"
1
2
  require "bundler/gem_tasks"
2
3
  require "rspec/core/rake_task"
3
4
  require "rubocop/rake_task"
@@ -5,4 +6,10 @@ require "rubocop/rake_task"
5
6
  RSpec::Core::RakeTask.new(:spec)
6
7
  RuboCop::RakeTask.new
7
8
 
8
- task default: [:rubocop, :spec]
9
+ if !ENV["APPRAISAL_INITIALIZED"] && !ENV["TRAVIS"]
10
+ task :default do
11
+ sh "rubocop && appraisal install && rake appraisal spec"
12
+ end
13
+ else
14
+ task default: [:rubocop, :spec]
15
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ArLazyPreload
4
+ # ActiveRecord::CollectionProxy patch for getting records for preload
5
+ module CollectionProxy
6
+ private
7
+
8
+ def ar_lazy_preload_records
9
+ target
10
+ end
11
+ end
12
+ end
@@ -10,7 +10,12 @@ module ArLazyPreload
10
10
  def load
11
11
  need_context = !loaded?
12
12
  result = super
13
- Context.register(records: @records, association_tree: lazy_preload_values) if need_context
13
+ if need_context
14
+ Context.register(
15
+ records: ar_lazy_preload_records,
16
+ association_tree: lazy_preload_values
17
+ )
18
+ end
14
19
  result
15
20
  end
16
21
 
@@ -47,6 +52,10 @@ module ArLazyPreload
47
52
 
48
53
  private
49
54
 
55
+ def ar_lazy_preload_records
56
+ @records
57
+ end
58
+
50
59
  attr_writer :lazy_preload_values
51
60
  end
52
61
  end
@@ -5,6 +5,7 @@ require "ar_lazy_preload/active_record/relation"
5
5
  require "ar_lazy_preload/active_record/association"
6
6
  require "ar_lazy_preload/active_record/merger"
7
7
  require "ar_lazy_preload/active_record/association_relation"
8
+ require "ar_lazy_preload/active_record/collection_proxy"
8
9
 
9
10
  module ArLazyPreload
10
11
  class Railtie < Rails::Railtie
@@ -20,6 +21,8 @@ module ArLazyPreload
20
21
  ActiveRecord::Associations::CollectionAssociation,
21
22
  ActiveRecord::Associations::Association
22
23
  ].each { |klass| klass.prepend(Association) }
24
+
25
+ ActiveRecord::Associations::CollectionProxy.prepend(CollectionProxy)
23
26
  end
24
27
  end
25
28
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ArLazyPreload
4
- VERSION = "0.2.1"
4
+ VERSION = "0.2.2"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ar_lazy_preload
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - DmitryTsepelev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-09 00:00:00.000000000 Z
11
+ date: 2018-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: appraisal
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  description: lazy_preload implementation for ActiveRecord models
112
126
  email:
113
127
  - dmitry.a.tsepelev@gmail.com
@@ -122,6 +136,7 @@ files:
122
136
  - lib/ar_lazy_preload/active_record/association.rb
123
137
  - lib/ar_lazy_preload/active_record/association_relation.rb
124
138
  - lib/ar_lazy_preload/active_record/base.rb
139
+ - lib/ar_lazy_preload/active_record/collection_proxy.rb
125
140
  - lib/ar_lazy_preload/active_record/merger.rb
126
141
  - lib/ar_lazy_preload/active_record/relation.rb
127
142
  - lib/ar_lazy_preload/associated_context_builder.rb