conditional_counter_cache 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -2
- data/README.md +1 -1
- data/conditional_counter_cache.gemspec +2 -2
- data/lib/conditional_counter_cache/belongs_to.rb +18 -17
- data/lib/conditional_counter_cache/version.rb +1 -1
- metadata +4 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67b6400f57af1be506b76af3618bfe5784328da4
|
4
|
+
data.tar.gz: c3a98bbdb52a7a24eaf81617b0a1bec34638617a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2f28b4dcb18b32facf8b3a154dce4aa60509b0678e36ea966fd6eb38becb867c0995e18e3a27ff37f1f98259fd560baf6a07a6e50bae51a8454af9b36ebaa24
|
7
|
+
data.tar.gz: ec19e146850906ae08b316bf1260ede3947f9e4185cce96fe1780090bee493ec9ee64e3a136d167127dd146d3f7f67ca208968727cfba4f76e2615381ecce50d
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = ConditionalCounterCache::VERSION
|
9
9
|
spec.authors = ["Ryo Nakamura"]
|
10
10
|
spec.email = ["r7kamura@gmail.com"]
|
11
|
-
spec.summary = "
|
11
|
+
spec.summary = "Give condition when to increment/decrement counter cache."
|
12
12
|
spec.homepage = "https://github.com/r7kamura/conditional_counter_cache"
|
13
13
|
spec.license = "MIT"
|
14
14
|
|
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_dependency "activerecord", ">= 4.0.0"
|
20
|
+
spec.add_dependency "activerecord", ">= 4.0.0"
|
21
21
|
spec.add_dependency "activesupport"
|
22
22
|
spec.add_development_dependency "bundler", "~> 1.7"
|
23
23
|
spec.add_development_dependency "rails"
|
@@ -1,27 +1,28 @@
|
|
1
1
|
module ConditionalCounterCache
|
2
|
-
# Overrides ActiveRecord 4.1.4's counter cache implementation.
|
3
2
|
module BelongsTo
|
4
3
|
def add_counter_cache_methods(mixin)
|
5
|
-
return if mixin.method_defined? :
|
4
|
+
return if mixin.method_defined? :belongs_to_counter_cache_after_update
|
6
5
|
|
7
6
|
mixin.class_eval do
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
cache_column = reflection.counter_cache_column
|
12
|
-
record.class.increment_counter(cache_column, record.id)
|
13
|
-
@_after_create_counter_called = true
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def belongs_to_counter_cache_before_destroy(reflection)
|
18
|
-
foreign_key = reflection.foreign_key.to_sym
|
19
|
-
unless destroyed_by_association && destroyed_by_association.foreign_key.to_sym == foreign_key
|
20
|
-
record = send reflection.name
|
21
|
-
if record && !self.destroyed?
|
7
|
+
unless ActiveRecord::VERSION::MAJOR >= 4 && ActiveRecord::VERSION::MINOR >= 2
|
8
|
+
def belongs_to_counter_cache_after_create(reflection)
|
9
|
+
if record = send(reflection.name)
|
22
10
|
return unless reflection.has_countable?(self)
|
23
11
|
cache_column = reflection.counter_cache_column
|
24
|
-
record.class.
|
12
|
+
record.class.increment_counter(cache_column, record.id)
|
13
|
+
@_after_create_counter_called = true
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def belongs_to_counter_cache_before_destroy(reflection)
|
18
|
+
foreign_key = reflection.foreign_key.to_sym
|
19
|
+
unless destroyed_by_association && destroyed_by_association.foreign_key.to_sym == foreign_key
|
20
|
+
record = send reflection.name
|
21
|
+
if record && !self.destroyed?
|
22
|
+
return unless reflection.has_countable?(self)
|
23
|
+
cache_column = reflection.counter_cache_column
|
24
|
+
record.class.decrement_counter(cache_column, record.id)
|
25
|
+
end
|
25
26
|
end
|
26
27
|
end
|
27
28
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: conditional_counter_cache
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryo Nakamura
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -17,9 +17,6 @@ dependencies:
|
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 4.0.0
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 4.2.0
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -27,9 +24,6 @@ dependencies:
|
|
27
24
|
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 4.0.0
|
30
|
-
- - "<"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 4.2.0
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: activesupport
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -153,9 +147,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
153
147
|
version: '0'
|
154
148
|
requirements: []
|
155
149
|
rubyforge_project:
|
156
|
-
rubygems_version: 2.
|
150
|
+
rubygems_version: 2.4.5
|
157
151
|
signing_key:
|
158
152
|
specification_version: 4
|
159
|
-
summary:
|
153
|
+
summary: Give condition when to increment/decrement counter cache.
|
160
154
|
test_files: []
|
161
155
|
has_rdoc:
|