Method: Utest::InmemoryRedis#lrem

Defined in:
lib/utest/inmemory_redis.rb

#lrem(key, count, value) ⇒ Object



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/utest/inmemory_redis.rb', line 95

def lrem(key,count,value)
  return 0 if @lists[key].nil?
  
  my_list = @lists[key]
  old_size = my_list.size
  
  if count == 0
    my_list.delete(value)
  else
    my_list.reverse! if count < 0
    num_found = 0
    my_list.reject! do |x|
      num_found += 1 if x == value
      num_found > count.abs ? false : x == value
    end
    my_list.reverse! if count < 0
  end
  new_size = my_list.size
  old_size - new_size
end