Class: RedisRds::List
- Inherits:
-
Object
show all
- Includes:
- Enumerable
- Defined in:
- lib/redis_rds/list.rb
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
Instance Method Details
44
45
46
47
48
|
# File 'lib/redis_rds/list.rb', line 44
def clear
return connection.ltrim(@redis_key, 1, 0)
end
|
#each(&block) ⇒ Object
40
41
42
|
# File 'lib/redis_rds/list.rb', line 40
def each(&block)
return get(0).each(&block)
end
|
#empty? ⇒ Boolean
9
10
11
|
# File 'lib/redis_rds/list.rb', line 9
def empty?
return self.size == 0 end
|
#get(start, stop = -1)) ⇒ Object
13
14
15
|
# File 'lib/redis_rds/list.rb', line 13
def get(start, stop = -1)
return connection.lrange(@redis_key, start, stop)
end
|
#lpop(length = 1, force = false) ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/redis_rds/list.rb', line 25
def lpop(length = 1, force = false)
lua_script = "
local length = tonumber(ARGV[1]);
if (ARGV[2] ~= 'true' or redis.call('llen', KEYS[1])>=length) then
local result = redis.call('lrange', KEYS[1], 0, length - 1);
redis.call('ltrim', KEYS[1], length, - 1);
return result
else return ''
end"
result = connection.eval(lua_script, [@redis_key], [length, force])
result = [] if result.blank?
return result
end
|
#lpush(elems) ⇒ Object
21
22
23
|
# File 'lib/redis_rds/list.rb', line 21
def lpush(elems)
return connection.lpush(@redis_key, Array.wrap(elems))
end
|
#rpush(elems) ⇒ Object
17
18
19
|
# File 'lib/redis_rds/list.rb', line 17
def rpush(elems)
return connection.rpush(@redis_key, Array.wrap(elems))
end
|
5
6
7
|
# File 'lib/redis_rds/list.rb', line 5
def size
return connection.llen(@redis_key)
end
|