activerecord-precount 0.6.1 → 0.6.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 +4 -4
- data/ci/Gemfile.activerecord-5.0.x +1 -1
- data/lib/active_record/precount.rb +1 -0
- data/lib/active_record/precount/autosave_association_extension.rb +14 -0
- data/lib/active_record/precount/version.rb +1 -1
- data/test/cases/associations/autosave_association_bug_reproduction_test.rb +26 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c92657e5f11805aecb44010c1df4fe3974bf05da
|
4
|
+
data.tar.gz: 60838e0e6fcea0079f0d008ccc4424697675006f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b93b4d140152d202018ea73a66b80a34bc3c55ee38a81d3ee4bb2d721ddcbd509d45aff9446278b0513c4c925979b4eef2258d50524d44b4b5664a1aa827f960
|
7
|
+
data.tar.gz: 65a1f4826a8686dec6e64873e3b8760c55a3a8bed687ec906f3897d09116792cdec13578d8b5e6c4a531404e099cea8f7e37f7e8e2e1d8e771e18881acae7db3
|
@@ -28,6 +28,7 @@ require "active_support/lazy_load_hooks"
|
|
28
28
|
# * collection_proxy_extension: Fallback to eager-loaded values when foo.count is called
|
29
29
|
#
|
30
30
|
ActiveSupport.on_load(:active_record) do
|
31
|
+
require "active_record/precount/autosave_association_extension"
|
31
32
|
require "active_record/precount/base_extension"
|
32
33
|
require "active_record/precount/collection_proxy_extension"
|
33
34
|
require "active_record/precount/has_many_extension"
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module ActiveRecord
|
2
|
+
module Precount
|
3
|
+
module AutosaveAssociationExtension
|
4
|
+
private
|
5
|
+
|
6
|
+
def save_belongs_to_association(reflection)
|
7
|
+
return if reflection.is_a? ActiveRecord::Reflection::CountLoaderReflection
|
8
|
+
super(reflection)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
Base.prepend(Precount::AutosaveAssociationExtension)
|
14
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'cases/helper'
|
2
|
+
|
3
|
+
class AutosaveAssociationBugReproductionTest < ActiveRecord::CountLoader::TestCase
|
4
|
+
def setup
|
5
|
+
tweets_count.times do |i|
|
6
|
+
tweet = Tweet.create
|
7
|
+
i.times do |j|
|
8
|
+
Favorite.create(tweet: tweet, user_id: j + 1)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def teardown
|
14
|
+
[Tweet, Favorite].each(&:delete_all)
|
15
|
+
end
|
16
|
+
|
17
|
+
def tweets_count
|
18
|
+
3
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_bug_with_save_belongs_to_association_method_fixed
|
22
|
+
tweet = Tweet.first
|
23
|
+
tweet.my_favorites_count
|
24
|
+
assert_equal(true, tweet.save!)
|
25
|
+
end
|
26
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-precount
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takashi Kokubun
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -205,6 +205,7 @@ files:
|
|
205
205
|
- ci/Gemfile.activerecord-5.0.x
|
206
206
|
- ci/travis.rb
|
207
207
|
- lib/active_record/precount.rb
|
208
|
+
- lib/active_record/precount/autosave_association_extension.rb
|
208
209
|
- lib/active_record/precount/base_extension.rb
|
209
210
|
- lib/active_record/precount/collection_proxy_extension.rb
|
210
211
|
- lib/active_record/precount/count_loader_builder.rb
|
@@ -278,6 +279,7 @@ files:
|
|
278
279
|
- sample/public/robots.txt
|
279
280
|
- sample/vendor/assets/javascripts/.keep
|
280
281
|
- sample/vendor/assets/stylesheets/.keep
|
282
|
+
- test/cases/associations/autosave_association_bug_reproduction_test.rb
|
281
283
|
- test/cases/associations/eager_count_test.rb
|
282
284
|
- test/cases/associations/eager_load_test.rb
|
283
285
|
- test/cases/associations/includes_test.rb
|