Class: RedisRds::SortedSet

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/redis_rds/sorted_set.rb

Direct Known Subclasses

SortedStringSet

Instance Attribute Summary

Attributes inherited from Object

#redis_key

Instance Method Summary collapse

Methods inherited from Object

configure, #connection, connection, #delete, #dump, #exists?, #expire, #expireat, flushdb, #initialize, #namespace, #persist, #pttl, #ttl, #type

Constructor Details

This class inherits a constructor from RedisRds::Object

Instance Method Details

#add(score, item) ⇒ Object



5
6
7
# File 'lib/redis_rds/sorted_set.rb', line 5

def add(score, item)
  return connection.zadd(@redis_key, score, item)
end

#allObject



15
16
17
# File 'lib/redis_rds/sorted_set.rb', line 15

def all
  return connection.zrange(@redis_key, 0, -1).to_a
end

#each(&block) ⇒ Object

TODO: Implement lazy enumerator



57
58
59
# File 'lib/redis_rds/sorted_set.rb', line 57

def each(&block)
  return all.each(&block)
end

#empty?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/redis_rds/sorted_set.rb', line 19

def empty?
  return size == 0
end

#include?(item) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/redis_rds/sorted_set.rb', line 27

def include?(item)
  return !index_of(item).nil?
end

#index_of(item) ⇒ Object



48
49
50
# File 'lib/redis_rds/sorted_set.rb', line 48

def index_of(item)
  return connection.zrank(@redis_key, item)
end

#push(item) ⇒ Object Also known as: <<



9
10
11
12
# File 'lib/redis_rds/sorted_set.rb', line 9

def push(item)
  index = size
  return add(index, item)
end

#range(min, max, order: :asc) ⇒ Object



39
40
41
42
43
44
45
46
# File 'lib/redis_rds/sorted_set.rb', line 39

def range(min, max, order: :asc)
  case order
  when :desc
    connection.zrevrange(@redis_key, min, max)
  else
    connection.zrange(@redis_key, min, max)
  end
end

#remove(item) ⇒ Object



31
32
33
# File 'lib/redis_rds/sorted_set.rb', line 31

def remove(item)
  return connection.zrem(@redis_key, item)
end

#remove_by_score(min, max) ⇒ Object



35
36
37
# File 'lib/redis_rds/sorted_set.rb', line 35

def remove_by_score(min, max)
  return connection.zremrangebyscore(@redis_key, min, max)
end

#sizeObject



23
24
25
# File 'lib/redis_rds/sorted_set.rb', line 23

def size
  return connection.zcard(@redis_key)
end

#to_jsonObject



52
53
54
# File 'lib/redis_rds/sorted_set.rb', line 52

def to_json
  return all.to_json
end