module Redis::Store::Ttl
Public Instance Methods
set(key, value, options = nil)
click to toggle source
Calls superclass method
# File lib/redis/store/ttl.rb, line 4 def set(key, value, options = nil) if ttl = expires_in(options) setex(key, ttl.to_i, value, :raw => true) else super(key, value, options) end end
setnx(key, value, options = nil)
click to toggle source
Calls superclass method
# File lib/redis/store/ttl.rb, line 12 def setnx(key, value, options = nil) if ttl = expires_in(options) setnx_with_expire(key, value, ttl.to_i, options) else super(key, value) end end
Protected Instance Methods
setnx_with_expire(key, value, ttl, options = {})
click to toggle source
# File lib/redis/store/ttl.rb, line 21 def setnx_with_expire(key, value, ttl, options = {}) with_multi_or_pipelined(options) do setnx(key, value, :raw => true) expire(key, ttl) end end
Private Instance Methods
expires_in(options)
click to toggle source
# File lib/redis/store/ttl.rb, line 29 def expires_in(options) if options # Rack::Session Merb Rails/Sinatra options[:expire_after] || options[:expires_in] || options[:expire_in] end end
with_multi_or_pipelined(options, &block)
click to toggle source
# File lib/redis/store/ttl.rb, line 36 def with_multi_or_pipelined(options, &block) return pipelined(&block) if options[:avoid_multi_commands] multi(&block) end