class TinyFakeRedis
Constants
- VERSION
Public Instance Methods
data()
click to toggle source
# File lib/tiny_fake_redis.rb, line 8 def data @data ||= {} end
decr(key)
click to toggle source
# File lib/tiny_fake_redis.rb, line 17 def decr(key) data[key] ||= 0 data[key] -= 1 end
del(*keys)
click to toggle source
# File lib/tiny_fake_redis.rb, line 89 def del(*keys) keys.flatten! i = 0 keys.map {|k| data.delete(k) && (i += 1) } i end
get(key)
click to toggle source
# File lib/tiny_fake_redis.rb, line 26 def get(key) data[key].dup end
incr(key)
click to toggle source
# File lib/tiny_fake_redis.rb, line 12 def incr(key) data[key] ||= 0 data[key] += 1 end
keys(pattern = ".*")
click to toggle source
# File lib/tiny_fake_redis.rb, line 85 def keys(pattern = ".*") data.keys.filter {|k| k.to_s =~ %r{^#{pattern}$}} end
lpush(key, val)
click to toggle source
# File lib/tiny_fake_redis.rb, line 30 def lpush(key, val) require_array(key) data[key].unshift val data[key].size end
lrange(key, start_idx, end_idx = -1)
click to toggle source
# File lib/tiny_fake_redis.rb, line 58 def lrange(key, start_idx, end_idx = -1) require_array(key) data[key][start_idx..end_idx] || [] end
lrem(key, count, val)
click to toggle source
# File lib/tiny_fake_redis.rb, line 36 def lrem(key, count, val) require_array(key) arr = get(key) removed = 0 if count == 0 removed = (arr.select {|v| v == val}).size arr.select! {|v| v != val} else arr.reverse! if count < 0 count.abs.times do removed += 1 unless arr.delete_at(arr.index(val) || arr.size).nil? end arr.reverse! if count < 0 end data[key] = arr removed end
method_missing(*)
click to toggle source
# File lib/tiny_fake_redis.rb, line 96 def method_missing(*) return nil end
rpop(key)
click to toggle source
# File lib/tiny_fake_redis.rb, line 74 def rpop(key) require_array(key) data[key].pop end
rpoplpush(one, two)
click to toggle source
# File lib/tiny_fake_redis.rb, line 79 def rpoplpush(one, two) val = rpop(one) lpush two, val val end
rpush(key, val)
click to toggle source
# File lib/tiny_fake_redis.rb, line 63 def rpush(key, val) require_array(key) data[key] << val data[key].size end
rpushx(key, val)
click to toggle source
# File lib/tiny_fake_redis.rb, line 69 def rpushx(key, val) return 0 unless data[key] rpush key, val end
set(key, val)
click to toggle source
# File lib/tiny_fake_redis.rb, line 22 def set(key, val) data[key] = val end
Private Instance Methods
raise_wrong_type()
click to toggle source
# File lib/tiny_fake_redis.rb, line 106 def raise_wrong_type raise Error.new("WRONGTYPE Operation against a key holding the wrong kind of value") end
require_array(key)
click to toggle source
# File lib/tiny_fake_redis.rb, line 101 def require_array(key) data[key] ||= [] raise_wrong_type unless data[key].is_a?(Array) end