Sha256: 137894da60d4b7587c6beee4e5dce2766f1c6febbf9bd2ca1bd3f10f03597ad0
Contents?: true
Size: 1.09 KB
Versions: 3
Compression:
Stored size: 1.09 KB
Contents
module Split # Simplifies the interface to Redis. class RedisInterface def initialize self.redis = Split.redis end 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 def add_to_list(list_name, value) redis.rpush(list_name, value) end def set_list_index(list_name, index, value) redis.lset(list_name, index, value) end def list_length(list_name) redis.llen(list_name) end def remove_last_item_from_list(list_name) redis.rpop(list_name) end def make_list_length(list_name, new_length) redis.ltrim(list_name, 0, new_length - 1) end def add_to_set(set_name, value) redis.sadd(set_name, value) unless redis.sismember(set_name, value) end private attr_accessor :redis end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
split-3.3.2 | lib/split/redis_interface.rb |
split-3.3.1 | lib/split/redis_interface.rb |
split-3.3.0 | lib/split/redis_interface.rb |