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