lib/suo/client/redis.rb in suo-0.3.4 vs lib/suo/client/redis.rb in suo-0.4.0
- old
+ new
@@ -7,36 +7,44 @@
options[:client] ||= ::Redis.new(options[:connection] || {})
super
end
def clear
- @client.del(@key)
+ with { |r| r.del(@key) }
end
private
+ def with(&block)
+ if @client.respond_to?(:with)
+ @client.with(&block)
+ else
+ yield @client
+ end
+ end
+
def get
- [@client.get(@key), nil]
+ [with { |r| r.get(@key) }, nil]
end
def set(newval, _, expire: false)
- ret = @client.multi do |multi|
- if expire
- multi.setex(@key, @options[:ttl], newval)
- else
- multi.set(@key, newval)
+ ret = with do |r|
+ r.multi do |rr|
+ if expire
+ rr.setex(@key, @options[:ttl], newval)
+ else
+ rr.set(@key, newval)
+ end
end
end
ret && ret[0] == OK_STR
end
def synchronize
- @client.watch(@key) do
- yield
- end
+ with { |r| r.watch(@key) { yield } }
ensure
- @client.unwatch
+ with { |r| r.unwatch }
end
def initial_set(val = BLANK_STR)
set(val, nil)
nil