voteable_mongoid 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/mongoid/voteable.rb +14 -3
- data/lib/mongoid/voter.rb +6 -2
- metadata +4 -4
data/lib/mongoid/voteable.rb
CHANGED
@@ -19,6 +19,8 @@ module Mongoid
|
|
19
19
|
# In this case, validation can be skip to maximize performance
|
20
20
|
|
21
21
|
def self.vote(options)
|
22
|
+
options.symbolize_keys!
|
23
|
+
|
22
24
|
votee_id = options[:votee_id]
|
23
25
|
voter_id = options[:voter_id]
|
24
26
|
value = options[:value]
|
@@ -27,7 +29,7 @@ module Mongoid
|
|
27
29
|
voter_id = BSON::ObjectID(voter_id) if voter_id.is_a?(String)
|
28
30
|
|
29
31
|
if options[:revote]
|
30
|
-
if value == :up
|
32
|
+
if value.to_sym == :up
|
31
33
|
push_field = :up_voter_ids
|
32
34
|
pull_field = :down_voter_ids
|
33
35
|
point_delta = +2
|
@@ -50,7 +52,7 @@ module Mongoid
|
|
50
52
|
})
|
51
53
|
|
52
54
|
else # new vote
|
53
|
-
if value == :up
|
55
|
+
if value.to_sym == :up
|
54
56
|
push_field = :up_voter_ids
|
55
57
|
point_delta = +1
|
56
58
|
else
|
@@ -73,7 +75,16 @@ module Mongoid
|
|
73
75
|
end
|
74
76
|
end
|
75
77
|
|
76
|
-
def vote_value(
|
78
|
+
def vote_value(x)
|
79
|
+
voter_id = case x
|
80
|
+
when String
|
81
|
+
BSON::ObjectID(x)
|
82
|
+
when BSON::ObjectID
|
83
|
+
x
|
84
|
+
else
|
85
|
+
x.id
|
86
|
+
end
|
87
|
+
|
77
88
|
return :up if up_voter_ids.try(:include?, voter_id)
|
78
89
|
return :down if down_voter_ids.try(:include?, voter_id)
|
79
90
|
end
|
data/lib/mongoid/voter.rb
CHANGED
@@ -40,6 +40,8 @@ module Mongoid
|
|
40
40
|
|
41
41
|
|
42
42
|
def vote(options, vote_value = nil)
|
43
|
+
options.symbolize_keys!
|
44
|
+
|
43
45
|
if options.is_a?(Hash)
|
44
46
|
votee = options[:votee]
|
45
47
|
else
|
@@ -54,8 +56,10 @@ module Mongoid
|
|
54
56
|
votee_class = options[:votee_type].constantize
|
55
57
|
end
|
56
58
|
|
57
|
-
|
58
|
-
options[:revote]
|
59
|
+
options[:revote] = if options.has_key?(:revote)
|
60
|
+
!options[:revote].blank?
|
61
|
+
else
|
62
|
+
options.has_key?(:new) ? options[:new].blank? : voted?(options)
|
59
63
|
end
|
60
64
|
|
61
65
|
options[:voter_id] = _id
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: voteable_mongoid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 3
|
10
|
+
version: 0.2.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Alex Nguyen
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-09-
|
18
|
+
date: 2010-09-03 00:00:00 +07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|