ar-resque-counter-cache 3.0.1 → 3.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -73,7 +73,7 @@ module ArResqueCounterCache
73
73
  # however, we need the `:counter_cache` option to be present so that
74
74
  # `ActiveRecord::Base.reset_counters` works correctly (as of
75
75
  # activerecord 3.2.9).
76
- options[:counter_cache] = true
76
+ options[:counter_cache] = true if options[:async_counter_cache]
77
77
  reflection
78
78
  end
79
79
 
@@ -1,3 +1,3 @@
1
1
  module ArResqueCounterCache
2
- VERSION = '3.0.1'
2
+ VERSION = '3.0.2'
3
3
  end
@@ -44,5 +44,22 @@ describe ArResqueCounterCache::ActiveRecord do
44
44
  user.reload
45
45
  user.posts_count.should eq(10)
46
46
  end
47
+
48
+ it "should allow normal counter caches" do
49
+ user.dogs.create(:name => "Ruff")
50
+ user.reload
51
+ user.dogs_count.should eq(1)
52
+ end
53
+
54
+ it "should allow non-counter caches" do
55
+ user2 = User.create(:name => "Sam")
56
+ cat = user.cats.create(:name => "Missy")
57
+ # Transfership of ownership would trigger counter cache methods... it
58
+ # should do nothing here.
59
+ cat.user = user2
60
+ cat.save!
61
+ user.cats.size.should eq(0)
62
+ user2.cats.size.should eq(1)
63
+ end
47
64
  end
48
65
  end
data/spec/models.rb CHANGED
@@ -7,6 +7,7 @@ class CreateModelsForTest < ActiveRecord::Migration
7
7
  t.string :name
8
8
  t.integer :posts_count, :default => 0
9
9
  t.integer :comments_count, :default => 0
10
+ t.integer :dogs_count, :default => 0
10
11
  end
11
12
  create_table :posts do |t|
12
13
  t.string :body
@@ -18,17 +19,29 @@ class CreateModelsForTest < ActiveRecord::Migration
18
19
  t.belongs_to :user
19
20
  t.belongs_to :post
20
21
  end
22
+ create_table :dogs do |t|
23
+ t.string :name
24
+ t.belongs_to :user
25
+ end
26
+ create_table :cats do |t|
27
+ t.string :name
28
+ t.belongs_to :user
29
+ end
21
30
  end
22
31
  def self.down
23
32
  drop_table(:users)
24
33
  drop_table(:posts)
25
34
  drop_table(:comments)
35
+ drop_table(:dogs)
36
+ drop_table(:cats)
26
37
  end
27
38
  end
28
39
 
29
40
  class User < ActiveRecord::Base
30
41
  has_many :comments
31
42
  has_many :posts
43
+ has_many :dogs
44
+ has_many :cats
32
45
  end
33
46
 
34
47
  class Post < ActiveRecord::Base
@@ -40,3 +53,13 @@ class Comment < ActiveRecord::Base
40
53
  belongs_to :user, :async_counter_cache => true
41
54
  belongs_to :post, :async_counter_cache => "count_of_comments"
42
55
  end
56
+
57
+ # Old school counter cache.
58
+ class Dog < ActiveRecord::Base
59
+ belongs_to :user, :counter_cache => true
60
+ end
61
+
62
+ # No counter cache at all.
63
+ class Cat < ActiveRecord::Base
64
+ belongs_to :user
65
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ar-resque-counter-cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-26 00:00:00.000000000 Z
12
+ date: 2012-11-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord