class Split::Persistence::RedisAdapter
Constants
- DEFAULT_CONFIG
Attributes
redis_key[R]
Public Class Methods
config()
click to toggle source
# File lib/split/persistence/redis_adapter.rb, line 47 def self.config @config ||= DEFAULT_CONFIG.dup end
new(context, key = nil)
click to toggle source
# File lib/split/persistence/redis_adapter.rb, line 9 def initialize(context, key = nil) if key @redis_key = "#{self.class.config[:namespace]}:#{key}" elsif lookup_by = self.class.config[:lookup_by] if lookup_by.respond_to?(:call) key_frag = lookup_by.call(context) else key_frag = context.send(lookup_by) end @redis_key = "#{self.class.config[:namespace]}:#{key_frag}" else raise "Please configure lookup_by" end end
reset_config!()
click to toggle source
# File lib/split/persistence/redis_adapter.rb, line 51 def self.reset_config! @config = DEFAULT_CONFIG.dup end
with_config(options={})
click to toggle source
# File lib/split/persistence/redis_adapter.rb, line 42 def self.with_config(options={}) self.config.merge!(options) self end
Public Instance Methods
[](field)
click to toggle source
# File lib/split/persistence/redis_adapter.rb, line 24 def [](field) Split.redis.hget(redis_key, field) end
[]=(field, value)
click to toggle source
# File lib/split/persistence/redis_adapter.rb, line 28 def []=(field, value) Split.redis.hset(redis_key, field, value) expire_seconds = self.class.config[:expire_seconds] Split.redis.expire(redis_key, expire_seconds) if expire_seconds end
delete(field)
click to toggle source
# File lib/split/persistence/redis_adapter.rb, line 34 def delete(field) Split.redis.hdel(redis_key, field) end
keys()
click to toggle source
# File lib/split/persistence/redis_adapter.rb, line 38 def keys Split.redis.hkeys(redis_key) end