Class: Hari::Keys::SortedSet
- Inherits:
-
Key
- Object
- Key
- Hari::Keys::SortedSet
show all
- Defined in:
- lib/hari/keys/sorted_set.rb
Instance Attribute Summary
Attributes inherited from Key
#name, #node
Instance Method Summary
collapse
-
#<<(*score_members) ⇒ Object
-
#add(*score_members) ⇒ Object
-
#count ⇒ Object
(also: #size, #length)
-
#delete(*members) ⇒ Object
-
#empty? ⇒ Boolean
-
#include?(member) ⇒ Boolean
(also: #member?)
-
#many? ⇒ Boolean
-
#one? ⇒ Boolean
-
#range(start = 0, stop = -1,, options = {}) ⇒ Object
(also: #members)
-
#range_by_score(min, max, options = {}) ⇒ Object
-
#range_with_scores ⇒ Object
-
#rank(member, options = {}) ⇒ Object
(also: #ranking, #position)
-
#revrange(start = 0, stop = -1,, options = {}) ⇒ Object
(also: #reverse_range, #desc_range)
-
#revrange_by_score(min, max, options = {}) ⇒ Object
-
#revrange_with_scores ⇒ Object
-
#revrank(member) ⇒ Object
(also: #reverse_ranking, #reverse_position)
-
#score(member) ⇒ Object
-
#sorted_set(name) ⇒ Object
-
#sorted_set!(name) ⇒ Object
-
#trim_by_rank(start, stop) ⇒ Object
-
#trim_by_score(min, max) ⇒ Object
Methods inherited from Key
#delete!, #exists?, #expire, #expire_at, #initialize, #key, #persist, #ttl, #type
Instance Method Details
#<<(*score_members) ⇒ Object
97
98
99
|
# File 'lib/hari/keys/sorted_set.rb', line 97
def <<(*score_members)
add score_members
end
|
#add(*score_members) ⇒ Object
93
94
95
|
# File 'lib/hari/keys/sorted_set.rb', line 93
def add(*score_members)
Hari.redis.zadd key, score_members.to_a.flatten
end
|
#count ⇒ Object
Also known as:
size, length
64
65
66
|
# File 'lib/hari/keys/sorted_set.rb', line 64
def count
Hari.redis.zcard key
end
|
#delete(*members) ⇒ Object
101
102
103
|
# File 'lib/hari/keys/sorted_set.rb', line 101
def delete(*members)
Hari.redis.zrem key, members
end
|
#empty? ⇒ Boolean
71
72
73
|
# File 'lib/hari/keys/sorted_set.rb', line 71
def empty?
count == 0
end
|
#include?(member) ⇒ Boolean
Also known as:
member?
83
84
85
|
# File 'lib/hari/keys/sorted_set.rb', line 83
def include?(member)
score(member).present?
end
|
#many? ⇒ Boolean
79
80
81
|
# File 'lib/hari/keys/sorted_set.rb', line 79
def many?
count > 1
end
|
#one? ⇒ Boolean
75
76
77
|
# File 'lib/hari/keys/sorted_set.rb', line 75
def one?
count == 1
end
|
#range(start = 0, stop = -1,, options = {}) ⇒ Object
Also known as:
members
15
16
17
18
19
|
# File 'lib/hari/keys/sorted_set.rb', line 15
def range(start = 0, stop = -1, options = {})
return revrange(start, stop, options) if options[:desc]
Hari.redis.zrange key, start, stop, options.slice(:with_scores)
end
|
#range_by_score(min, max, options = {}) ⇒ Object
38
39
40
41
42
|
# File 'lib/hari/keys/sorted_set.rb', line 38
def range_by_score(min, max, options = {})
return revrange_by_score(min, max, options) if options[:desc]
Hari.redis.zrangebyscore key, min, max, options.slice(:with_scores, :limit)
end
|
#range_with_scores ⇒ Object
23
24
25
|
# File 'lib/hari/keys/sorted_set.rb', line 23
def range_with_scores
range 0, -1, with_scores: true
end
|
#rank(member, options = {}) ⇒ Object
Also known as:
ranking, position
48
49
50
51
52
|
# File 'lib/hari/keys/sorted_set.rb', line 48
def rank(member, options = {})
return revrank(member, options) if options[:desc]
Hari.redis.zrank key, member
end
|
#revrange(start = 0, stop = -1,, options = {}) ⇒ Object
Also known as:
reverse_range, desc_range
27
28
29
|
# File 'lib/hari/keys/sorted_set.rb', line 27
def revrange(start = 0, stop = -1, options = {})
Hari.redis.zrevrange key, start, stop, options.slice(:with_scores)
end
|
#revrange_by_score(min, max, options = {}) ⇒ Object
44
45
46
|
# File 'lib/hari/keys/sorted_set.rb', line 44
def revrange_by_score(min, max, options = {})
Hari.redis.zrevrangebyscore key, max, min, options.slice(:with_scores, :limit)
end
|
#revrange_with_scores ⇒ Object
34
35
36
|
# File 'lib/hari/keys/sorted_set.rb', line 34
def revrange_with_scores
revrange 0, -1, with_scores: true
end
|
#revrank(member) ⇒ Object
Also known as:
reverse_ranking, reverse_position
57
58
59
|
# File 'lib/hari/keys/sorted_set.rb', line 57
def revrank(member)
Hari.redis.zrevrank key, member
end
|
#score(member) ⇒ Object
89
90
91
|
# File 'lib/hari/keys/sorted_set.rb', line 89
def score(member)
Hari.redis.zscore key, member
end
|
#sorted_set(name) ⇒ Object
5
6
7
8
|
# File 'lib/hari/keys/sorted_set.rb', line 5
def sorted_set(name)
@name = name
self
end
|
#sorted_set!(name) ⇒ Object
10
11
12
13
|
# File 'lib/hari/keys/sorted_set.rb', line 10
def sorted_set!(name)
@name = name
members
end
|
#trim_by_rank(start, stop) ⇒ Object
105
106
107
|
# File 'lib/hari/keys/sorted_set.rb', line 105
def trim_by_rank(start, stop)
Hari.redis.zremrangebyrank key, start, stop
end
|
#trim_by_score(min, max) ⇒ Object
109
110
111
|
# File 'lib/hari/keys/sorted_set.rb', line 109
def trim_by_score(min, max)
Hari.redis.zremrangebyscore key, min, max
end
|