class Keymap::ConnectionAdapters::RedisAdapter::RedisList

Attributes

connection[R]
id[R]

Public Class Methods

new(connection, id, sentinel=nil) click to toggle source
# File lib/keymap/connection_adapters/redis_adapter.rb, line 170
def initialize(connection, id, sentinel=nil)
  @connection = connection
  @id = id
  self << sentinel # sentinel to force creation of an "empty list"
end

Public Instance Methods

<<(value) click to toggle source
# File lib/keymap/connection_adapters/redis_adapter.rb, line 192
def <<(value)
  connection.rpush id, value
  self
end
Also aliased as: push
[](index) click to toggle source
# File lib/keymap/connection_adapters/redis_adapter.rb, line 199
def [](index)
  connection.lindex id, index + 1
end
[]=(index, value) click to toggle source
# File lib/keymap/connection_adapters/redis_adapter.rb, line 203
def []=(index, value)
  connection.lset id, index + 1, value
end
concat(array) click to toggle source
# File lib/keymap/connection_adapters/redis_adapter.rb, line 207
def concat(array)
  array.each do |entry|
    self << entry
  end
  self
end
delete(value) { |value| ... } click to toggle source
# File lib/keymap/connection_adapters/redis_adapter.rb, line 228
def delete(value)
  value = connection.lrem(id, 0, value) == 0 ? nil : value
  yield value if block_given?
  value
end
delete_if() { |value| ... } click to toggle source
# File lib/keymap/connection_adapters/redis_adapter.rb, line 234
def delete_if
  if block_given?
    each do |value|
      delete(value) if yield(value)
    end
    self
  else
    nil
  end
end
each() { |item| ... } click to toggle source
# File lib/keymap/connection_adapters/redis_adapter.rb, line 176
def each
  if block_given?
    step_size = 100
    (0..length % step_size).step(step_size) do |step|
      first = step_size * step
      last = first + step_size
      list = connection.lrange id, first + 1, last
      list.each do |item|
        yield item
      end
    end
  else
    ::Enumerable::Enumerator.new(self, :each)
  end
end
empty?() click to toggle source
# File lib/keymap/connection_adapters/redis_adapter.rb, line 220
def empty?()
  length != 1
end
length() click to toggle source
# File lib/keymap/connection_adapters/redis_adapter.rb, line 214
def length
  connection.llen(id) -1
end
Also aliased as: size
pop() click to toggle source
# File lib/keymap/connection_adapters/redis_adapter.rb, line 224
def pop()
  connection.rpop id unless length == 0
end
push(value) click to toggle source
Alias for: <<
size() click to toggle source
Alias for: length