goldiloader 0.0.9 → 0.0.10
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 +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +18 -10
- data/CHANGELOG.md +9 -0
- data/README.md +2 -3
- data/goldiloader.gemspec +4 -2
- data/lib/goldiloader/active_record_patches.rb +6 -8
- data/lib/goldiloader/association_info.rb +12 -2
- data/lib/goldiloader/association_options.rb +15 -2
- data/lib/goldiloader/compatibility.rb +42 -3
- data/lib/goldiloader/version.rb +1 -1
- data/spec/goldiloader/goldiloader_spec.rb +24 -6
- metadata +68 -40
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1fcd566afe07738acd5ebf7a634c40c310314ba3
|
4
|
+
data.tar.gz: d7db565dac03de0ef17bd44f372a0b861c9663c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eeae5d642ddd6e2b7a613045f328b92c327840ff4f7f061ab4c6a51647d0c2a47d999016628b0141b4943759b9185c623df9f41f97011d2b7033774130db504a
|
7
|
+
data.tar.gz: e9afd2b2bb91fdcfd821ce2701f1af6e13a0eea244b384f67179fc90ffb53eb8897aa0806941943bf110f02fe85c07bd083926c715297952fdef6054b7f2128d
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,20 +1,28 @@
|
|
1
1
|
language: ruby
|
2
|
+
sudo: false
|
2
3
|
env:
|
3
|
-
- RAILS_VERSION="~> 3.2.
|
4
|
+
- RAILS_VERSION="~> 3.2.22" JRUBY_OPTS="$JRUBY_OPTS --debug"
|
4
5
|
- RAILS_VERSION="~> 4.0.13" JRUBY_OPTS="$JRUBY_OPTS --debug"
|
5
|
-
- RAILS_VERSION="~> 4.1.
|
6
|
-
- RAILS_VERSION="~> 4.2.
|
6
|
+
- RAILS_VERSION="~> 4.1.14" JRUBY_OPTS="$JRUBY_OPTS --debug"
|
7
|
+
- RAILS_VERSION="~> 4.2.5" JRUBY_OPTS="$JRUBY_OPTS --debug"
|
8
|
+
- RAILS_VERSION="~> 5.0.0.beta3" JRUBY_OPTS="$JRUBY_OPTS --debug"
|
7
9
|
rvm:
|
8
10
|
- 1.9.3
|
9
11
|
- 2.0.0
|
10
|
-
- 2.1.
|
11
|
-
- 2.2.
|
12
|
+
- 2.1.6
|
13
|
+
- 2.2.2
|
14
|
+
- 2.3.0
|
12
15
|
- jruby-19mode
|
16
|
+
- jruby-9.0.5.0
|
13
17
|
matrix:
|
14
18
|
exclude:
|
15
|
-
|
19
|
+
- rvm: 1.9.3
|
20
|
+
env: RAILS_VERSION="~> 5.0.0.beta3" JRUBY_OPTS="$JRUBY_OPTS --debug"
|
21
|
+
- rvm: 2.0.0
|
22
|
+
env: RAILS_VERSION="~> 5.0.0.beta3" JRUBY_OPTS="$JRUBY_OPTS --debug"
|
23
|
+
- rvm: 2.1.6
|
24
|
+
env: RAILS_VERSION="~> 5.0.0.beta3" JRUBY_OPTS="$JRUBY_OPTS --debug"
|
16
25
|
- rvm: jruby-19mode
|
17
|
-
env: RAILS_VERSION="~>
|
18
|
-
|
19
|
-
|
20
|
-
env: RAILS_VERSION="~> 3.2.21" JRUBY_OPTS="$JRUBY_OPTS --debug"
|
26
|
+
env: RAILS_VERSION="~> 5.0.0.beta3" JRUBY_OPTS="$JRUBY_OPTS --debug"
|
27
|
+
- rvm: jruby-9.0.5.0
|
28
|
+
env: RAILS_VERSION="~> 5.0.0.beta3" JRUBY_OPTS="$JRUBY_OPTS --debug"
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
### 0.0.10 (unreleased)
|
4
|
+
* Fix [issue 13](https://github.com/salsify/goldiloader/issues/13) - Eager load associations with unscope
|
5
|
+
in Rails 4.1.9+ now that the underlying Rails bug has been fixed.
|
6
|
+
* Fix [issue 11](https://github.com/salsify/goldiloader/issues/11) - Eager load associations with joins in
|
7
|
+
Rails 4.2+ now that the underlying Rails bug has been fixed.
|
8
|
+
* Initial support for Rails 5. There are no known issues but see
|
9
|
+
[issue 27](https://github.com/salsify/goldiloader/issues/27) for remaining tasks.
|
10
|
+
* MRI 2.3.0 support.
|
11
|
+
|
3
12
|
### 0.0.9
|
4
13
|
* Merge [pull request](https://github.com/salsify/goldiloader/pull/24) - Optimization: Cache compatibility
|
5
14
|
checks. **Thanks Jonathan Calvert!**
|
data/README.md
CHANGED
@@ -162,15 +162,14 @@ Associations with any of the following options cannot be eager loaded:
|
|
162
162
|
* `finder_sql`
|
163
163
|
* `group` (due to a Rails bug)
|
164
164
|
* `from` (due to a Rails bug)
|
165
|
-
* `
|
166
|
-
* `joins` (due to a Rails bug)
|
165
|
+
* `joins` (only Rails 4.0/4.1 - due to a Rails bug)
|
167
166
|
* `uniq` (only Rails 3.2 - due to a Rails bug)
|
168
167
|
|
169
168
|
Goldiloader detects associations with any of these options and disables automatic eager loading on them.
|
170
169
|
|
171
170
|
## Status
|
172
171
|
|
173
|
-
This gem is tested with Rails 3.2, 4.0, 4.1,
|
172
|
+
This gem is tested with Rails 3.2, 4.0, 4.1, 4.2, and 5.0 using MRI 1.9.3, 2.0, 2.1, 2.2, 2.3, JRuby 1.7 in 1.9 mode, and JRuby 9000.
|
174
173
|
|
175
174
|
Let us know if you find any issues or have any other feedback.
|
176
175
|
|
data/goldiloader.gemspec
CHANGED
@@ -17,14 +17,16 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = Dir.glob('spec/**/*')
|
18
18
|
spec.require_paths = ['lib']
|
19
19
|
|
20
|
-
spec.add_dependency 'activerecord', ENV.fetch('RAILS_VERSION', ['>= 3.2', '<
|
21
|
-
spec.add_dependency 'activesupport', ENV.fetch('RAILS_VERSION', ['>= 3.2', '<
|
20
|
+
spec.add_dependency 'activerecord', ENV.fetch('RAILS_VERSION', ['>= 3.2', '< 5.1'])
|
21
|
+
spec.add_dependency 'activesupport', ENV.fetch('RAILS_VERSION', ['>= 3.2', '< 5.1'])
|
22
22
|
|
23
23
|
spec.add_development_dependency 'coveralls'
|
24
24
|
spec.add_development_dependency 'database_cleaner', '>= 1.2'
|
25
25
|
spec.add_development_dependency 'rake'
|
26
26
|
spec.add_development_dependency 'rspec', '~> 2'
|
27
27
|
spec.add_development_dependency 'simplecov', '~> 0.7.1'
|
28
|
+
# mime-type 3 requires Ruby >= 2.0
|
29
|
+
spec.add_development_dependency 'mime-types', '~> 2'
|
28
30
|
|
29
31
|
if RUBY_PLATFORM == 'java'
|
30
32
|
spec.add_development_dependency 'jdbc-sqlite3'
|
@@ -36,7 +36,7 @@ ActiveRecord::Relation.class_eval do
|
|
36
36
|
models
|
37
37
|
end
|
38
38
|
|
39
|
-
alias_method_chain :exec_queries, :auto_include
|
39
|
+
Goldiloader::Compatibility.alias_method_chain self, :exec_queries, :auto_include
|
40
40
|
end
|
41
41
|
|
42
42
|
ActiveRecord::Associations::Association.class_eval do
|
@@ -64,10 +64,8 @@ ActiveRecord::Associations::Association.class_eval do
|
|
64
64
|
!association_info.group? &&
|
65
65
|
!association_info.from? &&
|
66
66
|
!association_info.finder_sql? &&
|
67
|
-
|
68
|
-
!association_info.joins? &&
|
69
|
-
# Unscope not properly eager loaded - See https://github.com/salsify/goldiloader/issues/13
|
70
|
-
!association_info.unscope? &&
|
67
|
+
(Goldiloader::Compatibility.unscoped_eager_loadable? || !association_info.unscope?) &&
|
68
|
+
(Goldiloader::Compatibility.joins_eager_loadable? || !association_info.joins?) &&
|
71
69
|
!association_info.instance_dependent?
|
72
70
|
end
|
73
71
|
|
@@ -92,7 +90,7 @@ ActiveRecord::Associations::SingularAssociation.class_eval do
|
|
92
90
|
load_with_auto_include(:find_target, *args)
|
93
91
|
end
|
94
92
|
|
95
|
-
alias_method_chain :find_target, :auto_include
|
93
|
+
Goldiloader::Compatibility.alias_method_chain self, :find_target, :auto_include
|
96
94
|
end
|
97
95
|
|
98
96
|
ActiveRecord::Associations::CollectionAssociation.class_eval do
|
@@ -107,7 +105,7 @@ ActiveRecord::Associations::CollectionAssociation.class_eval do
|
|
107
105
|
send("#{aliased_target}_without_fully_load#{punctuation}", *args, &block)
|
108
106
|
end
|
109
107
|
|
110
|
-
alias_method_chain method, :fully_load
|
108
|
+
Goldiloader::Compatibility.alias_method_chain self, method, :fully_load
|
111
109
|
end
|
112
110
|
|
113
111
|
private
|
@@ -116,7 +114,7 @@ ActiveRecord::Associations::CollectionAssociation.class_eval do
|
|
116
114
|
load_with_auto_include(:load_target, *args)
|
117
115
|
end
|
118
116
|
|
119
|
-
alias_method_chain :load_target, :auto_include
|
117
|
+
Goldiloader::Compatibility.alias_method_chain self, :load_target, :auto_include
|
120
118
|
|
121
119
|
end
|
122
120
|
|
@@ -28,7 +28,11 @@ module Goldiloader
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def from?
|
31
|
-
|
31
|
+
if ActiveRecord::VERSION::MAJOR >= 5
|
32
|
+
association_scope && association_scope.from_clause.present?
|
33
|
+
else
|
34
|
+
association_scope && association_scope.from_value.present?
|
35
|
+
end
|
32
36
|
end
|
33
37
|
|
34
38
|
def group?
|
@@ -36,8 +40,14 @@ module Goldiloader
|
|
36
40
|
end
|
37
41
|
|
38
42
|
def joins?
|
43
|
+
return false unless association_scope
|
44
|
+
|
45
|
+
num_joins = association_scope.joins_values.size
|
46
|
+
if ActiveRecord::VERSION::MAJOR >= 5
|
47
|
+
num_joins += association_scope.left_joins_values.size + association_scope.left_outer_joins.size
|
48
|
+
end
|
39
49
|
# Yuck - Through associations will always have a join for *each* 'through' table
|
40
|
-
|
50
|
+
num_joins - num_through_joins > 0
|
41
51
|
end
|
42
52
|
|
43
53
|
def uniq?
|
@@ -4,10 +4,23 @@ module Goldiloader
|
|
4
4
|
module AssociationOptions
|
5
5
|
extend self
|
6
6
|
|
7
|
-
OPTIONS = [:auto_include, :fully_load]
|
7
|
+
OPTIONS = [:auto_include, :fully_load].freeze
|
8
|
+
|
9
|
+
# This is only used in Rails 5+
|
10
|
+
module AssociationBuilderExtension
|
11
|
+
def self.build(model, reflection)
|
12
|
+
# We have no callbacks to register
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.valid_options
|
16
|
+
OPTIONS
|
17
|
+
end
|
18
|
+
end
|
8
19
|
|
9
20
|
def register
|
10
|
-
if ::ActiveRecord::VERSION::MAJOR >=
|
21
|
+
if ::ActiveRecord::VERSION::MAJOR >= 5
|
22
|
+
ActiveRecord::Associations::Builder::Association.extensions << AssociationBuilderExtension
|
23
|
+
elsif ::ActiveRecord::VERSION::MAJOR >= 4
|
11
24
|
ActiveRecord::Associations::Builder::Association.valid_options.concat(OPTIONS)
|
12
25
|
else
|
13
26
|
# Each subclass of CollectionAssociation will have its own copy of valid_options so we need
|
@@ -3,9 +3,12 @@
|
|
3
3
|
module Goldiloader
|
4
4
|
module Compatibility
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
ACTIVE_RECORD_VERSION = ::Gem::Version.new(::ActiveRecord::VERSION::STRING)
|
7
|
+
MASS_ASSIGNMENT_SECURITY = ACTIVE_RECORD_VERSION < ::Gem::Version.new('4') || defined?(::ActiveRecord::MassAssignmentSecurity)
|
8
|
+
ASSOCIATION_FINDER_SQL = ACTIVE_RECORD_VERSION < ::Gem::Version.new('4.1')
|
9
|
+
UNSCOPE_QUERY_METHOD = ACTIVE_RECORD_VERSION >= ::Gem::Version.new('4.1')
|
10
|
+
JOINS_EAGER_LOADABLE = ACTIVE_RECORD_VERSION >= ::Gem::Version.new('4.2')
|
11
|
+
UNSCOPED_EAGER_LOADABLE = ACTIVE_RECORD_VERSION >= ::Gem::Version.new('4.1.9')
|
9
12
|
|
10
13
|
def self.mass_assignment_security_enabled?
|
11
14
|
MASS_ASSIGNMENT_SECURITY
|
@@ -18,5 +21,41 @@ module Goldiloader
|
|
18
21
|
def self.unscope_query_method_enabled?
|
19
22
|
UNSCOPE_QUERY_METHOD
|
20
23
|
end
|
24
|
+
|
25
|
+
def self.joins_eager_loadable?
|
26
|
+
# Associations with joins were not eager loadable prior to Rails 4.2 due to
|
27
|
+
# https://github.com/rails/rails/pull/17678
|
28
|
+
JOINS_EAGER_LOADABLE
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.unscoped_eager_loadable?
|
32
|
+
# Unscoped associations weren't properly eager loaded until after Rails 4.1.9.
|
33
|
+
# See https://github.com/rails/rails/issues/11036.
|
34
|
+
UNSCOPED_EAGER_LOADABLE
|
35
|
+
end
|
36
|
+
|
37
|
+
# Copied from Rails since it is deprecated in Rails 5.0. Switch to using
|
38
|
+
# Module#prepend when we drop Ruby 1.9 support.
|
39
|
+
def self.alias_method_chain(klass, target, feature)
|
40
|
+
# Strip out punctuation on predicates, bang or writer methods since
|
41
|
+
# e.g. target?_without_feature is not a valid method name.
|
42
|
+
aliased_target, punctuation = target.to_s.sub(/([?!=])$/, ''), $1
|
43
|
+
yield(aliased_target, punctuation) if block_given?
|
44
|
+
|
45
|
+
with_method = "#{aliased_target}_with_#{feature}#{punctuation}"
|
46
|
+
without_method = "#{aliased_target}_without_#{feature}#{punctuation}"
|
47
|
+
|
48
|
+
klass.send(:alias_method, without_method, target)
|
49
|
+
klass.send(:alias_method, target, with_method)
|
50
|
+
|
51
|
+
case
|
52
|
+
when klass.public_method_defined?(without_method)
|
53
|
+
klass.send(:public, target)
|
54
|
+
when klass.protected_method_defined?(without_method)
|
55
|
+
klass.send(:protected, target)
|
56
|
+
when klass.private_method_defined?(without_method)
|
57
|
+
klass.send(:private, target)
|
58
|
+
end
|
59
|
+
end
|
21
60
|
end
|
22
61
|
end
|
data/lib/goldiloader/version.rb
CHANGED
@@ -300,6 +300,14 @@ describe Goldiloader do
|
|
300
300
|
end
|
301
301
|
end
|
302
302
|
|
303
|
+
shared_examples "it auto eager loads the association" do |association_name|
|
304
|
+
specify do
|
305
|
+
blogs.drop(1).each do |blog|
|
306
|
+
expect(blog.association(association_name)).to be_loaded
|
307
|
+
end
|
308
|
+
end
|
309
|
+
end
|
310
|
+
|
303
311
|
context "associations with a limit" do
|
304
312
|
before do
|
305
313
|
blogs.first.limited_posts.to_a
|
@@ -371,10 +379,15 @@ describe Goldiloader do
|
|
371
379
|
end
|
372
380
|
|
373
381
|
it "applies the join correctly" do
|
374
|
-
|
382
|
+
sorted_post_authors = blogs.first.posts.map(&:author).map(&:name).sort
|
383
|
+
expect(blogs.first.posts_ordered_by_author.map(&:author).map(&:name)).to eq sorted_post_authors
|
375
384
|
end
|
376
385
|
|
377
|
-
|
386
|
+
if Goldiloader::Compatibility.joins_eager_loadable?
|
387
|
+
it_behaves_like "it auto eager loads the association", :posts_ordered_by_author
|
388
|
+
else
|
389
|
+
it_behaves_like "it doesn't auto eager the association", :posts_ordered_by_author
|
390
|
+
end
|
378
391
|
end
|
379
392
|
|
380
393
|
context "associations with a join in a has_many_through" do
|
@@ -383,10 +396,15 @@ describe Goldiloader do
|
|
383
396
|
end
|
384
397
|
|
385
398
|
it "applies the join correctly" do
|
386
|
-
|
399
|
+
sorted_post_cities = blogs.first.posts.map(&:author).map(&:address).map(&:city).sort
|
400
|
+
expect(blogs.first.posts_ordered_by_author.map(&:author).map(&:address).map(&:city)).to eq sorted_post_cities
|
387
401
|
end
|
388
402
|
|
389
|
-
|
403
|
+
if Goldiloader::Compatibility.joins_eager_loadable?
|
404
|
+
it_behaves_like "it auto eager loads the association", :authors_with_join
|
405
|
+
else
|
406
|
+
it_behaves_like "it doesn't auto eager the association", :authors_with_join
|
407
|
+
end
|
390
408
|
end
|
391
409
|
end
|
392
410
|
|
@@ -405,9 +423,9 @@ describe Goldiloader do
|
|
405
423
|
expect(authors.first.scoped_address_with_default_scope_remove).to be_present
|
406
424
|
end
|
407
425
|
|
408
|
-
it "
|
426
|
+
it "auto eager loads the association" do
|
409
427
|
authors.drop(1).each do |author|
|
410
|
-
expect(author.association(:scoped_address_with_default_scope_remove)).
|
428
|
+
expect(author.association(:scoped_address_with_default_scope_remove)).to be_loaded
|
411
429
|
end
|
412
430
|
end
|
413
431
|
end
|
metadata
CHANGED
@@ -1,139 +1,167 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: goldiloader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
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:
|
11
|
+
date: 2016-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
15
|
-
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3.2'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
23
|
-
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
version: '5.1'
|
23
|
+
requirement: !ruby/object:Gem::Requirement
|
26
24
|
requirements:
|
27
25
|
- - ">="
|
28
26
|
- !ruby/object:Gem::Version
|
29
27
|
version: '3.2'
|
30
28
|
- - "<"
|
31
29
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
30
|
+
version: '5.1'
|
31
|
+
prerelease: false
|
32
|
+
type: :runtime
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: activesupport
|
35
|
-
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '3.2'
|
40
40
|
- - "<"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
43
|
-
|
44
|
-
prerelease: false
|
45
|
-
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
version: '5.1'
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
46
44
|
requirements:
|
47
45
|
- - ">="
|
48
46
|
- !ruby/object:Gem::Version
|
49
47
|
version: '3.2'
|
50
48
|
- - "<"
|
51
49
|
- !ruby/object:Gem::Version
|
52
|
-
version: '
|
50
|
+
version: '5.1'
|
51
|
+
prerelease: false
|
52
|
+
type: :runtime
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: coveralls
|
55
|
-
|
55
|
+
version_requirements: !ruby/object:Gem::Requirement
|
56
56
|
requirements:
|
57
57
|
- - ">="
|
58
58
|
- !ruby/object:Gem::Version
|
59
59
|
version: '0'
|
60
|
-
|
61
|
-
prerelease: false
|
62
|
-
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirement: !ruby/object:Gem::Requirement
|
63
61
|
requirements:
|
64
62
|
- - ">="
|
65
63
|
- !ruby/object:Gem::Version
|
66
64
|
version: '0'
|
65
|
+
prerelease: false
|
66
|
+
type: :development
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
68
|
name: database_cleaner
|
69
|
-
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
70
70
|
requirements:
|
71
71
|
- - ">="
|
72
72
|
- !ruby/object:Gem::Version
|
73
73
|
version: '1.2'
|
74
|
-
|
75
|
-
prerelease: false
|
76
|
-
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
requirement: !ruby/object:Gem::Requirement
|
77
75
|
requirements:
|
78
76
|
- - ">="
|
79
77
|
- !ruby/object:Gem::Version
|
80
78
|
version: '1.2'
|
79
|
+
prerelease: false
|
80
|
+
type: :development
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: rake
|
83
|
-
|
83
|
+
version_requirements: !ruby/object:Gem::Requirement
|
84
84
|
requirements:
|
85
85
|
- - ">="
|
86
86
|
- !ruby/object:Gem::Version
|
87
87
|
version: '0'
|
88
|
-
|
89
|
-
prerelease: false
|
90
|
-
version_requirements: !ruby/object:Gem::Requirement
|
88
|
+
requirement: !ruby/object:Gem::Requirement
|
91
89
|
requirements:
|
92
90
|
- - ">="
|
93
91
|
- !ruby/object:Gem::Version
|
94
92
|
version: '0'
|
93
|
+
prerelease: false
|
94
|
+
type: :development
|
95
95
|
- !ruby/object:Gem::Dependency
|
96
96
|
name: rspec
|
97
|
-
|
97
|
+
version_requirements: !ruby/object:Gem::Requirement
|
98
98
|
requirements:
|
99
99
|
- - "~>"
|
100
100
|
- !ruby/object:Gem::Version
|
101
101
|
version: '2'
|
102
|
-
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
102
|
+
requirement: !ruby/object:Gem::Requirement
|
105
103
|
requirements:
|
106
104
|
- - "~>"
|
107
105
|
- !ruby/object:Gem::Version
|
108
106
|
version: '2'
|
107
|
+
prerelease: false
|
108
|
+
type: :development
|
109
109
|
- !ruby/object:Gem::Dependency
|
110
110
|
name: simplecov
|
111
|
+
version_requirements: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - "~>"
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: 0.7.1
|
111
116
|
requirement: !ruby/object:Gem::Requirement
|
112
117
|
requirements:
|
113
118
|
- - "~>"
|
114
119
|
- !ruby/object:Gem::Version
|
115
120
|
version: 0.7.1
|
116
|
-
type: :development
|
117
121
|
prerelease: false
|
122
|
+
type: :development
|
123
|
+
- !ruby/object:Gem::Dependency
|
124
|
+
name: mime-types
|
118
125
|
version_requirements: !ruby/object:Gem::Requirement
|
119
126
|
requirements:
|
120
127
|
- - "~>"
|
121
128
|
- !ruby/object:Gem::Version
|
122
|
-
version:
|
129
|
+
version: '2'
|
130
|
+
requirement: !ruby/object:Gem::Requirement
|
131
|
+
requirements:
|
132
|
+
- - "~>"
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '2'
|
135
|
+
prerelease: false
|
136
|
+
type: :development
|
123
137
|
- !ruby/object:Gem::Dependency
|
124
|
-
name: sqlite3
|
138
|
+
name: jdbc-sqlite3
|
139
|
+
version_requirements: !ruby/object:Gem::Requirement
|
140
|
+
requirements:
|
141
|
+
- - ">="
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: '0'
|
125
144
|
requirement: !ruby/object:Gem::Requirement
|
126
145
|
requirements:
|
127
146
|
- - ">="
|
128
147
|
- !ruby/object:Gem::Version
|
129
148
|
version: '0'
|
130
|
-
type: :development
|
131
149
|
prerelease: false
|
150
|
+
type: :development
|
151
|
+
- !ruby/object:Gem::Dependency
|
152
|
+
name: activerecord-jdbcsqlite3-adapter
|
132
153
|
version_requirements: !ruby/object:Gem::Requirement
|
133
154
|
requirements:
|
134
155
|
- - ">="
|
135
156
|
- !ruby/object:Gem::Version
|
136
157
|
version: '0'
|
158
|
+
requirement: !ruby/object:Gem::Requirement
|
159
|
+
requirements:
|
160
|
+
- - ">="
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: '0'
|
163
|
+
prerelease: false
|
164
|
+
type: :development
|
137
165
|
description: Automatically eager loads Rails associations as associations are traversed
|
138
166
|
email:
|
139
167
|
- jturkel@salsify.com
|
@@ -167,7 +195,7 @@ homepage: https://github.com/salsify/goldiloader
|
|
167
195
|
licenses:
|
168
196
|
- MIT
|
169
197
|
metadata: {}
|
170
|
-
post_install_message:
|
198
|
+
post_install_message:
|
171
199
|
rdoc_options: []
|
172
200
|
require_paths:
|
173
201
|
- lib
|
@@ -182,14 +210,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
182
210
|
- !ruby/object:Gem::Version
|
183
211
|
version: '0'
|
184
212
|
requirements: []
|
185
|
-
rubyforge_project:
|
186
|
-
rubygems_version: 2.4.
|
187
|
-
signing_key:
|
213
|
+
rubyforge_project:
|
214
|
+
rubygems_version: 2.4.8
|
215
|
+
signing_key:
|
188
216
|
specification_version: 4
|
189
217
|
summary: Automatic Rails association eager loading
|
190
218
|
test_files:
|
219
|
+
- spec/spec_helper.rb
|
191
220
|
- spec/db/database.yml
|
192
221
|
- spec/db/schema.rb
|
193
222
|
- spec/goldiloader/auto_include_context_spec.rb
|
194
223
|
- spec/goldiloader/goldiloader_spec.rb
|
195
|
-
- spec/spec_helper.rb
|