thumbs_up 0.5.2 → 0.5.3
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.
- data/lib/acts_as_voteable.rb +1 -1
- data/lib/acts_as_voter.rb +8 -8
- data/lib/generators/thumbs_up/templates/vote.rb +3 -3
- data/lib/has_karma.rb +3 -3
- data/lib/thumbs_up/version.rb +1 -1
- data/lib/thumbs_up.rb +1 -1
- metadata +12 -12
data/lib/acts_as_voteable.rb
CHANGED
data/lib/acts_as_voter.rb
CHANGED
|
@@ -32,7 +32,7 @@ module ThumbsUp #:nodoc:
|
|
|
32
32
|
# user.vote_count() # All votes
|
|
33
33
|
|
|
34
34
|
def vote_count(for_or_against = :all)
|
|
35
|
-
v = Vote.where(:voter_id => id).where(:voter_type => self.class.name)
|
|
35
|
+
v = Vote.where(:voter_id => id).where(:voter_type => self.class.base_class.name)
|
|
36
36
|
v = case for_or_against
|
|
37
37
|
when :all then v
|
|
38
38
|
when :up then v.where(:vote => true)
|
|
@@ -52,9 +52,9 @@ module ThumbsUp #:nodoc:
|
|
|
52
52
|
def voted_on?(voteable)
|
|
53
53
|
0 < Vote.where(
|
|
54
54
|
:voter_id => self.id,
|
|
55
|
-
:voter_type => self.class.name,
|
|
55
|
+
:voter_type => self.class.base_class.name,
|
|
56
56
|
:voteable_id => voteable.id,
|
|
57
|
-
:voteable_type => voteable.class.name
|
|
57
|
+
:voteable_type => voteable.class.base_class.name
|
|
58
58
|
).count
|
|
59
59
|
end
|
|
60
60
|
|
|
@@ -86,9 +86,9 @@ module ThumbsUp #:nodoc:
|
|
|
86
86
|
def unvote_for(voteable)
|
|
87
87
|
Vote.where(
|
|
88
88
|
:voter_id => self.id,
|
|
89
|
-
:voter_type => self.class.name,
|
|
89
|
+
:voter_type => self.class.base_class.name,
|
|
90
90
|
:voteable_id => voteable.id,
|
|
91
|
-
:voteable_type => voteable.class.name
|
|
91
|
+
:voteable_type => voteable.class.base_class.name
|
|
92
92
|
).map(&:destroy)
|
|
93
93
|
end
|
|
94
94
|
|
|
@@ -98,13 +98,13 @@ module ThumbsUp #:nodoc:
|
|
|
98
98
|
raise ArgumentError, "expected :up or :down" unless [:up, :down].include?(direction)
|
|
99
99
|
0 < Vote.where(
|
|
100
100
|
:voter_id => self.id,
|
|
101
|
-
:voter_type => self.class.name,
|
|
101
|
+
:voter_type => self.class.base_class.name,
|
|
102
102
|
:vote => direction == :up ? true : false,
|
|
103
103
|
:voteable_id => voteable.id,
|
|
104
|
-
:voteable_type => voteable.class.name
|
|
104
|
+
:voteable_type => voteable.class.base_class.name
|
|
105
105
|
).count
|
|
106
106
|
end
|
|
107
107
|
|
|
108
108
|
end
|
|
109
109
|
end
|
|
110
|
-
end
|
|
110
|
+
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
class Vote < ActiveRecord::Base
|
|
2
2
|
|
|
3
|
-
scope :for_voter, lambda { |*args| where(["voter_id = ? AND voter_type = ?", args.first.id, args.first.class.name]) }
|
|
4
|
-
scope :for_voteable, lambda { |*args| where(["voteable_id = ? AND voteable_type = ?", args.first.id, args.first.class.name]) }
|
|
3
|
+
scope :for_voter, lambda { |*args| where(["voter_id = ? AND voter_type = ?", args.first.id, args.first.class.base_class.name]) }
|
|
4
|
+
scope :for_voteable, lambda { |*args| where(["voteable_id = ? AND voteable_type = ?", args.first.id, args.first.class.base_class.name]) }
|
|
5
5
|
scope :recent, lambda { |*args| where(["created_at > ?", (args.first || 2.weeks.ago)]) }
|
|
6
6
|
scope :descending, order("created_at DESC")
|
|
7
7
|
|
|
@@ -14,4 +14,4 @@ class Vote < ActiveRecord::Base
|
|
|
14
14
|
# Comment out the line below to allow multiple votes per user.
|
|
15
15
|
validates_uniqueness_of :voteable_id, :scope => [:voteable_type, :voter_type, :voter_id]
|
|
16
16
|
<% end %>
|
|
17
|
-
end
|
|
17
|
+
end
|
data/lib/has_karma.rb
CHANGED
|
@@ -29,10 +29,10 @@ module ThumbsUp #:nodoc:
|
|
|
29
29
|
|
|
30
30
|
module InstanceMethods
|
|
31
31
|
def karma(options = {})
|
|
32
|
-
self.class.karmic_objects.collect do |object, attr|
|
|
33
|
-
v = object.where(["#{Vote.table_name}.vote = ?", true]).where(["#{self.class.table_name}.#{self.class.primary_key} = ?", self.id])
|
|
32
|
+
self.class.base_class.karmic_objects.collect do |object, attr|
|
|
33
|
+
v = object.where(["#{Vote.table_name}.vote = ?", true]).where(["#{self.class.base_class.table_name}.#{self.class.base_class.primary_key} = ?", self.id])
|
|
34
34
|
v = v.joins("INNER JOIN #{Vote.table_name} ON #{Vote.table_name}.voteable_type = '#{object.to_s}' AND #{Vote.table_name}.voteable_id = #{object.table_name}.#{object.primary_key}")
|
|
35
|
-
v = v.joins("INNER JOIN #{self.class.table_name} ON #{self.class.table_name}.#{self.class.primary_key} = #{object.table_name}.#{attr[0]}")
|
|
35
|
+
v = v.joins("INNER JOIN #{self.class.base_class.table_name} ON #{self.class.base_class.table_name}.#{self.class.base_class.primary_key} = #{object.table_name}.#{attr[0]}")
|
|
36
36
|
(v.count.to_f * attr[1]).round
|
|
37
37
|
end.sum
|
|
38
38
|
end
|
data/lib/thumbs_up/version.rb
CHANGED
data/lib/thumbs_up.rb
CHANGED
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.5.
|
|
4
|
+
version: 0.5.3
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -18,7 +18,7 @@ date: 2012-03-05 00:00:00.000000000 Z
|
|
|
18
18
|
dependencies:
|
|
19
19
|
- !ruby/object:Gem::Dependency
|
|
20
20
|
name: activerecord
|
|
21
|
-
requirement: &
|
|
21
|
+
requirement: &70260724487840 !ruby/object:Gem::Requirement
|
|
22
22
|
none: false
|
|
23
23
|
requirements:
|
|
24
24
|
- - ! '>='
|
|
@@ -26,10 +26,10 @@ dependencies:
|
|
|
26
26
|
version: '0'
|
|
27
27
|
type: :runtime
|
|
28
28
|
prerelease: false
|
|
29
|
-
version_requirements: *
|
|
29
|
+
version_requirements: *70260724487840
|
|
30
30
|
- !ruby/object:Gem::Dependency
|
|
31
31
|
name: simplecov
|
|
32
|
-
requirement: &
|
|
32
|
+
requirement: &70260724487260 !ruby/object:Gem::Requirement
|
|
33
33
|
none: false
|
|
34
34
|
requirements:
|
|
35
35
|
- - ! '>='
|
|
@@ -37,10 +37,10 @@ dependencies:
|
|
|
37
37
|
version: '0'
|
|
38
38
|
type: :development
|
|
39
39
|
prerelease: false
|
|
40
|
-
version_requirements: *
|
|
40
|
+
version_requirements: *70260724487260
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: bundler
|
|
43
|
-
requirement: &
|
|
43
|
+
requirement: &70260724486740 !ruby/object:Gem::Requirement
|
|
44
44
|
none: false
|
|
45
45
|
requirements:
|
|
46
46
|
- - ! '>='
|
|
@@ -48,10 +48,10 @@ dependencies:
|
|
|
48
48
|
version: '0'
|
|
49
49
|
type: :development
|
|
50
50
|
prerelease: false
|
|
51
|
-
version_requirements: *
|
|
51
|
+
version_requirements: *70260724486740
|
|
52
52
|
- !ruby/object:Gem::Dependency
|
|
53
53
|
name: mysql2
|
|
54
|
-
requirement: &
|
|
54
|
+
requirement: &70260724502580 !ruby/object:Gem::Requirement
|
|
55
55
|
none: false
|
|
56
56
|
requirements:
|
|
57
57
|
- - ! '>='
|
|
@@ -59,10 +59,10 @@ dependencies:
|
|
|
59
59
|
version: '0'
|
|
60
60
|
type: :development
|
|
61
61
|
prerelease: false
|
|
62
|
-
version_requirements: *
|
|
62
|
+
version_requirements: *70260724502580
|
|
63
63
|
- !ruby/object:Gem::Dependency
|
|
64
64
|
name: rake
|
|
65
|
-
requirement: &
|
|
65
|
+
requirement: &70260724501960 !ruby/object:Gem::Requirement
|
|
66
66
|
none: false
|
|
67
67
|
requirements:
|
|
68
68
|
- - ! '>='
|
|
@@ -70,7 +70,7 @@ dependencies:
|
|
|
70
70
|
version: '0'
|
|
71
71
|
type: :development
|
|
72
72
|
prerelease: false
|
|
73
|
-
version_requirements: *
|
|
73
|
+
version_requirements: *70260724501960
|
|
74
74
|
description: ThumbsUp provides dead-simple voting capabilities to ActiveRecord models
|
|
75
75
|
with karma calculation, a la stackoverflow.com.
|
|
76
76
|
email:
|
|
@@ -109,7 +109,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
109
109
|
version: '0'
|
|
110
110
|
segments:
|
|
111
111
|
- 0
|
|
112
|
-
hash:
|
|
112
|
+
hash: 4476845312579799296
|
|
113
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
114
|
none: false
|
|
115
115
|
requirements:
|