BigW Consortium Gitlab

Commit 764eaedf by Jacob Vosmaer

Improve Redis::Store monkey-patch robustness

parent 62ea0274
No related merge requests found
...@@ -4,13 +4,36 @@ module Gitlab ...@@ -4,13 +4,36 @@ module Gitlab
class Redis class Redis
class Store class Store
module Namespace module Namespace
# Redis::Store#expire in redis-store 1.1.4 does not respect namespaces;
# this new method does.
def setex(key, expires_in, value, options=nil) def setex(key, expires_in, value, options=nil)
namespace(key) { |key| super(key, expires_in, value) } namespace(key) { |key| super(key, expires_in, value) }
end end
# Redis::Store#expire in redis-store 1.1.4 does not respect namespaces;
# this new method does.
def expire(key, expires_in) def expire(key, expires_in)
namespace(key) { |key| super(key, expires_in) } namespace(key) { |key| super(key, expires_in) }
end end
private
# Our new definitions of #setex and #expire above assume that the
# #namespace method exists. Because we cannot be sure of that, we
# re-implement the #namespace method from Redis::Store::Namespace so
# that it all Redis::Store instances, whether they use namespacing or
# not.
#
# Based on lib/redis/store/namespace.rb L49-51 (redis-store 1.1.4)
def namespace(key)
if @namespace
yield interpolate(key)
else
# This Redis::Store instance does not use a namespace so we should
# just pass through the key.
yield key
end
end
end end
end end
end end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment