class ActiveRedisDB::List

Public Class Methods

all(key) click to toggle source
# File lib/active_redis_db/list.rb, line 31
def all(key)
  value = client.lrange(normalize_key(key), 0, -1)
  metatransform(value)
end
between(key, start = 1, finish = 0) click to toggle source
# File lib/active_redis_db/list.rb, line 26
def between(key, start = 1, finish = 0)
  value = client.lrange(normalize_key(key), (start - 1), (finish - 1))
  metatransform(value)
end
count(key) click to toggle source
# File lib/active_redis_db/list.rb, line 36
def count(key)
  client.llen(normalize_key(key))
end
create(key, value, order = :prepend) click to toggle source
# File lib/active_redis_db/list.rb, line 40
def create(key, value, order = :prepend)
  normalized_key = normalize_key(key)

  append?(order) ? client.rpush(normalized_key, value) : client.lpush(normalized_key, value)
end
create!(key, value, order = :prepend) click to toggle source
# File lib/active_redis_db/list.rb, line 46
def create!(key, value, order = :prepend)
  normalized_key = normalize_key(key)

  append?(order) ? client.rpushx(normalized_key, value) : client.lpushx(normalized_key, value)
end
create_after(key, pivot, value) click to toggle source
# File lib/active_redis_db/list.rb, line 70
def create_after(key, pivot, value)
  client.linsert(normalize_key(key), :after, pivot, value)
end
create_before(key, pivot, value) click to toggle source
# File lib/active_redis_db/list.rb, line 66
def create_before(key, pivot, value)
  client.linsert(normalize_key(key), :before, pivot, value)
end
create_limit(key, value, limit, order = :prepend) click to toggle source
# File lib/active_redis_db/list.rb, line 52
def create_limit(key, value, limit, order = :prepend)
  normalized_key = normalize_key(key)

  append?(order) ? client.rpush(normalized_key, value) : client.lpush(normalized_key, value)
  client.ltrim(normalized_key, 0, (limit - 1))
end
create_limit!(key, value, limit, order = :prepend) click to toggle source
# File lib/active_redis_db/list.rb, line 59
def create_limit!(key, value, limit, order = :prepend)
  normalized_key = normalize_key(key)

  append?(order) ? client.rpushx(normalized_key, value) : client.lpushx(normalized_key, value)
  client.ltrim(normalized_key, 0, (limit - 1))
end
destroy(key, count, value) click to toggle source
# File lib/active_redis_db/list.rb, line 90
def destroy(key, count, value)
  client.lrem(normalize_key(key), count, value)
end
destroy_all(key) click to toggle source
# File lib/active_redis_db/list.rb, line 106
def destroy_all(key)
  client.ltrim(normalize_key(key), -1, 0)
end
destroy_except(key, start, finish) click to toggle source
# File lib/active_redis_db/list.rb, line 102
def destroy_except(key, start, finish)
  client.ltrim(normalize_key(key), (start - 1), (finish - 1))
end
destroy_first(key, limit = 1) click to toggle source
# File lib/active_redis_db/list.rb, line 94
def destroy_first(key, limit = 1)
  client.ltrim(normalize_key(key), limit, -1)
end
destroy_last(key, limit = 1) click to toggle source
# File lib/active_redis_db/list.rb, line 98
def destroy_last(key, limit = 1)
  client.ltrim(normalize_key(key), 0, -(limit + 1))
end
find(key, position = 1) click to toggle source
# File lib/active_redis_db/list.rb, line 6
def find(key, position = 1)
  value = client.lindex(normalize_key(key), (position - 1))
  value = metamorph(value) if evaluate?
  value
end
first(key, limit = 1) click to toggle source
# File lib/active_redis_db/list.rb, line 12
def first(key, limit = 1)
  value = client.lrange(normalize_key(key), 0, -1)
  value = (limit == 1 ? value.first : value.first(limit))
  value = metamorph(value) if evaluate?
  value
end
last(key, limit = 1) click to toggle source
# File lib/active_redis_db/list.rb, line 19
def last(key, limit = 1)
  value = client.lrange(normalize_key(key), 0, -1)
  value = (limit == 1 ? value.last : value.last(limit))
  value = metamorph(value) if evaluate?
  value
end
move(key, desination) click to toggle source
# File lib/active_redis_db/list.rb, line 78
def move(key, desination)
  value = client.rpoplpush(normalize_key(key), normalize_key(desination))
  value = metamorph(value) if evaluate?
  value
end
move_blocking(key, desination) click to toggle source
# File lib/active_redis_db/list.rb, line 84
def move_blocking(key, desination)
  value = brpoplpush(normalize_key(key), normalize_key(desination))
  value = metamorph(value) if evaluate?
  value
end
pop(key, order = :prepend) click to toggle source
# File lib/active_redis_db/list.rb, line 110
def pop(key, order = :prepend)
  value = append?(order) ? client.rpop(key) : client.lpop(key)
  value = metamorph(value) if evaluate?
  value
end
pop_blocking(keys, opts = {}) click to toggle source
# File lib/active_redis_db/list.rb, line 116
def pop_blocking(keys, opts = {})
  timeout = opts[:timeout] || 0
  value = if append?(opts[:order] || :prepend)
            client.brpop(keys, timeout)
          else
            client.blpop(keys, timeout)
          end

  value = metamorph(value) if evaluate?
  value
end
update(key, index, value) click to toggle source
# File lib/active_redis_db/list.rb, line 74
def update(key, index, value)
  client.lset(normalize_key(key), index, value)
end