acts_as_rrranking 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/acts_as_rrranking.rb +15 -2
- data/lib/acts_as_rrranking/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NTA5ZWI0MGVhMWFmMjExZWE4ZmY3YTcyZDg0NTZhNzU1MGJlZWUwMA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
Mjk4NTM0OTFmOThiOGQxOTg5MjQ1ZmM0ZGQwODdlYTdjYTIwY2VmYg==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZDZlZmE3M2IzODY5MDQzNzA5ZmM4NjJiYTIyMTg2YzNmOWFhMzU0OTJmZWJh
|
10
|
+
NDg1M2Y4NTRmYmNjMTQ1ZTMwMmI3NTRiNjg5YWIxNDFlZDZjNGFjOTA2M2Yy
|
11
|
+
ZTZjNmY2NGQyNzk3MjgxY2YwN2U0Y2NjYTY1ZjBkYTUwNzEwZjA=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MjRiNmM4YjAzZTRiMTYzNTM4ZWJjMDNkNThjOTVlZDcxMWI4MDUzNWMyZDE1
|
14
|
+
YmI5NDNiODI5ODFmNDIyYWRhZDA1ZDVkZTM1MzIwY2ZjY2RmZWExMDUzYTVk
|
15
|
+
NmVjMDdiYmUyNjI3NGU1NTRjNWZlZjcxNjE5MmU2YjY4MGQ0OTI=
|
data/lib/acts_as_rrranking.rb
CHANGED
@@ -16,15 +16,20 @@ module ActsAsRrranking
|
|
16
16
|
self.class.redis.zadd('#{@redis_ranking_key}', self.#{@score_key}, self.#{@ranking_id})
|
17
17
|
end
|
18
18
|
|
19
|
+
def delete_#{@ranking_key}
|
20
|
+
self.class.redis.zrem('#{@redis_ranking_key}', self.#{@ranking_id})
|
21
|
+
end
|
22
|
+
|
19
23
|
def current_#{@ranking_key}
|
20
24
|
if self.#{@score_key} && self.#{@score_key} > 0
|
21
|
-
(self.class.redis.zrevrank('#{@redis_ranking_key}', self.#{@ranking_id}) || -1)
|
25
|
+
(self.class.redis.zrevrank('#{@redis_ranking_key}', self.#{@ranking_id}) || -1).try(:+, 1)
|
22
26
|
else
|
23
27
|
nil
|
24
28
|
end
|
25
29
|
end
|
26
30
|
|
27
31
|
after_save :update_#{@ranking_key}
|
32
|
+
after_destroy :delete_#{@ranking_key}
|
28
33
|
STR
|
29
34
|
|
30
35
|
instance_eval <<-STR
|
@@ -40,6 +45,10 @@ module ActsAsRrranking
|
|
40
45
|
def redis_ranking_key
|
41
46
|
'#{@redis_ranking_key}'
|
42
47
|
end
|
48
|
+
|
49
|
+
def remove_all_redis_ranking_data
|
50
|
+
self.redis.zremrangebyrank('#{@redis_ranking_key}', 0, -1)
|
51
|
+
end
|
43
52
|
STR
|
44
53
|
end
|
45
54
|
|
@@ -63,8 +72,12 @@ module ActsAsRrranking
|
|
63
72
|
@db_name ||= ActiveRecord::Base.connection_config[:adapter]
|
64
73
|
end
|
65
74
|
|
75
|
+
def redis=(conn)
|
76
|
+
@redis = conn
|
77
|
+
end
|
78
|
+
|
66
79
|
def redis
|
67
|
-
@redis
|
80
|
+
@redis || Redis.current || raise("Redis connection not set")
|
68
81
|
end
|
69
82
|
end
|
70
83
|
end
|