thumbs_up 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.
@@ -24,7 +24,7 @@ module ThumbsUp
24
24
  # You can also have the upvotes and downvotes returned separately in the same query:
25
25
  # Post.plusminus_tally(:separate_updown => true)
26
26
  def plusminus_tally(params = {})
27
- t = self.joins("LEFT OUTER JOIN #{Vote.table_name} ON #{self.table_name}.id = #{Vote.table_name}.voteable_id")
27
+ t = self.joins("LEFT OUTER JOIN #{Vote.table_name} ON #{self.table_name}.id = #{Vote.table_name}.voteable_id AND #{Vote.table_name}.voteable_type = '#{self.name}'")
28
28
  t = t.order("plusminus_tally DESC")
29
29
  t = t.group("#{self.table_name}.id")
30
30
  t = t.select("#{self.table_name}.*")
@@ -1,3 +1,3 @@
1
1
  module ThumbsUp
2
- VERSION = '0.6.1'
2
+ VERSION = '0.6.2'
3
3
  end
data/test/test_helper.rb CHANGED
@@ -75,6 +75,12 @@ ActiveRecord::Schema.define do
75
75
  t.string :name
76
76
  t.string :description
77
77
  end
78
+
79
+ create_table :other_items, :force => true do |t|
80
+ t.integer :user_id
81
+ t.string :name
82
+ t.string :description
83
+ end
78
84
  end
79
85
 
80
86
  require 'thumbs_up'
@@ -100,6 +106,11 @@ class Item < ActiveRecord::Base
100
106
  belongs_to :user
101
107
  end
102
108
 
109
+ class OtherItem < ActiveRecord::Base
110
+ acts_as_voteable
111
+ belongs_to :user
112
+ end
113
+
103
114
  class User < ActiveRecord::Base
104
115
  acts_as_voter
105
116
  has_many :items
@@ -354,4 +354,17 @@ class TestThumbsUp < Test::Unit::TestCase
354
354
  assert_equal 4, users[0].karma
355
355
  assert_equal 0, users[1].karma
356
356
  end
357
+
358
+ def test_plusminus_tally_scopes_by_voteable_type
359
+ user = User.create(:name => 'david')
360
+ item = Item.create(:name => 'XBOX', :description => 'XBOX console')
361
+ another_item = OtherItem.create(:name => 'Playstation', :description => 'Playstation console')
362
+
363
+ user.vote_for(item)
364
+ user.vote_for(another_item)
365
+
366
+ assert_equal 1, Item.plusminus_tally.sum(&:plusminus_tally).to_i
367
+ assert_equal 1, OtherItem.plusminus_tally.sum(&:plusminus_tally).to_i
368
+ end
369
+
357
370
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thumbs_up
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2012-07-30 00:00:00.000000000 Z
17
+ date: 2012-09-19 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: activerecord
@@ -166,7 +166,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
166
166
  version: '0'
167
167
  segments:
168
168
  - 0
169
- hash: 2774307803948239525
169
+ hash: 173536367113367291
170
170
  required_rubygems_version: !ruby/object:Gem::Requirement
171
171
  none: false
172
172
  requirements:
@@ -175,10 +175,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
175
175
  version: '0'
176
176
  segments:
177
177
  - 0
178
- hash: 2774307803948239525
178
+ hash: 173536367113367291
179
179
  requirements: []
180
180
  rubyforge_project:
181
- rubygems_version: 1.8.24
181
+ rubygems_version: 1.8.23
182
182
  signing_key:
183
183
  specification_version: 3
184
184
  summary: Voting for ActiveRecord with multiple vote sources and karma calculation.