Class: Split::RedisInterface

Inherits:
Object
  • Object
show all
Defined in:
lib/split/redis_interface.rb

Overview

Simplifies the interface to Redis.

Instance Method Summary collapse

Constructor Details

#initializeRedisInterface

Returns a new instance of RedisInterface.



4
5
6
# File 'lib/split/redis_interface.rb', line 4

def initialize
  self.redis = Split.redis
end

Instance Method Details

#add_to_list(list_name, value) ⇒ Object



21
22
23
# File 'lib/split/redis_interface.rb', line 21

def add_to_list(list_name, value)
  redis.rpush(list_name, value)
end

#add_to_set(set_name, value) ⇒ Object



43
44
45
# File 'lib/split/redis_interface.rb', line 43

def add_to_set(set_name, value)
  redis.sadd(set_name, value) unless redis.sismember(set_name, value)
end

#list_length(list_name) ⇒ Object



29
30
31
# File 'lib/split/redis_interface.rb', line 29

def list_length(list_name)
  redis.llen(list_name)
end

#make_list_length(list_name, new_length) ⇒ Object



37
38
39
40
41
# File 'lib/split/redis_interface.rb', line 37

def make_list_length(list_name, new_length)
  while list_length(list_name) > new_length
    remove_last_item_from_list(list_name)
  end
end

#persist_list(list_name, list_values) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/split/redis_interface.rb', line 8

def persist_list(list_name, list_values)
  max_index = list_length(list_name) - 1
  list_values.each_with_index do |value, index|
    if index > max_index
      add_to_list(list_name, value)
    else
      set_list_index(list_name, index, value)
    end
  end
  make_list_length(list_name, list_values.length)
  list_values
end

#remove_last_item_from_list(list_name) ⇒ Object



33
34
35
# File 'lib/split/redis_interface.rb', line 33

def remove_last_item_from_list(list_name)
  redis.rpop(list_name)
end

#set_list_index(list_name, index, value) ⇒ Object



25
26
27
# File 'lib/split/redis_interface.rb', line 25

def set_list_index(list_name, index, value)
  redis.lset(list_name, index, value)
end