Class: ActiveOrm::Redis::List
Class Method Summary collapse
- .all(key) ⇒ Object
- .between(key, start = 1, finish = 0) ⇒ Object
- .count(key) ⇒ Object
- .create(key, value, order = :prepend) ⇒ Object
- .create!(key, value, order = :prepend) ⇒ Object
- .create_after(key, pivot, value) ⇒ Object
- .create_before(key, pivot, value) ⇒ Object
- .create_limit(key, value, limit, order = :prepend) ⇒ Object
- .create_limit!(key, value, limit, order = :prepend) ⇒ Object
- .destroy(key, count, value) ⇒ Object
- .destroy_all(key) ⇒ Object
- .destroy_except(key, start, finish) ⇒ Object
- .destroy_first(key, limit = 1) ⇒ Object
- .destroy_last(key, limit = 1) ⇒ Object
- .find(key, position = 1) ⇒ Object
- .first(key, limit = 1) ⇒ Object
- .last(key, limit = 1) ⇒ Object
- .move(key, desination) ⇒ Object
- .move_blocking(key, desination) ⇒ Object
- .pop(key, order = :prepend) ⇒ Object
- .pop_blocking(keys, opts = {}) ⇒ Object
- .update(key, index, value) ⇒ Object
Methods inherited from Base
Class Method Details
.all(key) ⇒ Object
31 32 33 34 |
# File 'lib/active_orm/redis/list.rb', line 31 def all(key) value = client.lrange(normalize_key(key), 0, -1) (value) end |
.between(key, start = 1, finish = 0) ⇒ Object
26 27 28 29 |
# File 'lib/active_orm/redis/list.rb', line 26 def between(key, start = 1, finish = 0) value = client.lrange(normalize_key(key), (start - 1), (finish - 1)) (value) end |
.count(key) ⇒ Object
36 37 38 |
# File 'lib/active_orm/redis/list.rb', line 36 def count(key) client.llen(normalize_key(key)) end |
.create(key, value, order = :prepend) ⇒ Object
40 41 42 43 44 |
# File 'lib/active_orm/redis/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) ⇒ Object
46 47 48 49 50 |
# File 'lib/active_orm/redis/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) ⇒ Object
70 71 72 |
# File 'lib/active_orm/redis/list.rb', line 70 def create_after(key, pivot, value) client.linsert(normalize_key(key), :after, pivot, value) end |
.create_before(key, pivot, value) ⇒ Object
66 67 68 |
# File 'lib/active_orm/redis/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) ⇒ Object
52 53 54 55 56 57 |
# File 'lib/active_orm/redis/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) ⇒ Object
59 60 61 62 63 64 |
# File 'lib/active_orm/redis/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) ⇒ Object
90 91 92 |
# File 'lib/active_orm/redis/list.rb', line 90 def destroy(key, count, value) client.lrem(normalize_key(key), count, value) end |
.destroy_all(key) ⇒ Object
106 107 108 |
# File 'lib/active_orm/redis/list.rb', line 106 def destroy_all(key) client.ltrim(normalize_key(key), -1, 0) end |
.destroy_except(key, start, finish) ⇒ Object
102 103 104 |
# File 'lib/active_orm/redis/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) ⇒ Object
94 95 96 |
# File 'lib/active_orm/redis/list.rb', line 94 def destroy_first(key, limit = 1) client.ltrim(normalize_key(key), limit, -1) end |
.destroy_last(key, limit = 1) ⇒ Object
98 99 100 |
# File 'lib/active_orm/redis/list.rb', line 98 def destroy_last(key, limit = 1) client.ltrim(normalize_key(key), 0, -(limit + 1)) end |
.find(key, position = 1) ⇒ Object
6 7 8 9 10 |
# File 'lib/active_orm/redis/list.rb', line 6 def find(key, position = 1) value = client.lindex(normalize_key(key), (position - 1)) value = (value) if evaluate? value end |
.first(key, limit = 1) ⇒ Object
12 13 14 15 16 17 |
# File 'lib/active_orm/redis/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 = (value) if evaluate? value end |
.last(key, limit = 1) ⇒ Object
19 20 21 22 23 24 |
# File 'lib/active_orm/redis/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 = (value) if evaluate? value end |
.move(key, desination) ⇒ Object
78 79 80 81 82 |
# File 'lib/active_orm/redis/list.rb', line 78 def move(key, desination) value = client.rpoplpush(normalize_key(key), normalize_key(desination)) value = (value) if evaluate? value end |
.move_blocking(key, desination) ⇒ Object
84 85 86 87 88 |
# File 'lib/active_orm/redis/list.rb', line 84 def move_blocking(key, desination) value = brpoplpush(normalize_key(key), normalize_key(desination)) value = (value) if evaluate? value end |
.pop(key, order = :prepend) ⇒ Object
110 111 112 113 114 |
# File 'lib/active_orm/redis/list.rb', line 110 def pop(key, order = :prepend) value = append?(order) ? client.rpop(key) : client.lpop(key) value = (value) if evaluate? value end |
.pop_blocking(keys, opts = {}) ⇒ Object
116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/active_orm/redis/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 = (value) if evaluate? value end |
.update(key, index, value) ⇒ Object
74 75 76 |
# File 'lib/active_orm/redis/list.rb', line 74 def update(key, index, value) client.lset(normalize_key(key), index, value) end |