class Lit::RedisStorage

Public Class Methods

new() click to toggle source
# File lib/lit/adapters/redis_storage.rb, line 15
def initialize
  Lit.redis
end

Public Instance Methods

[](key) click to toggle source
# File lib/lit/adapters/redis_storage.rb, line 19
def [](key)
  if Lit.redis.exists(_prefixed_key_for_array(key))
    Lit.redis.lrange(_prefixed_key(key), 0, -1)
  elsif Lit.redis.exists(_prefixed_key_for_nil(key))
    nil
  else
    Lit.redis.get(_prefixed_key(key))
  end
end
[]=(k, v) click to toggle source
# File lib/lit/adapters/redis_storage.rb, line 29
def []=(k, v)
  delete(k)
  if v.is_a?(Array)
    Lit.redis.set(_prefixed_key_for_array(k), '1')
    v.each do |ve|
      Lit.redis.rpush(_prefixed_key(k), ve.to_s)
    end
  elsif v.nil?
    Lit.redis.set(_prefixed_key_for_nil(k), '1')
    Lit.redis.set(_prefixed_key(k), '')
  else
    Lit.redis.set(_prefixed_key(k), v)
  end
end
clear() click to toggle source
# File lib/lit/adapters/redis_storage.rb, line 50
def clear
  Lit.redis.del(keys) unless keys.empty?
end
delete(k) click to toggle source
# File lib/lit/adapters/redis_storage.rb, line 44
def delete(k)
  Lit.redis.del(_prefixed_key_for_array(k))
  Lit.redis.del(_prefixed_key_for_nil(k))
  Lit.redis.del(_prefixed_key(k))
end
has_key?(key) click to toggle source
# File lib/lit/adapters/redis_storage.rb, line 58
def has_key?(key)
  Lit.redis.exists(_prefixed_key(key))
end
Also aliased as: key?
incr(key) click to toggle source
# File lib/lit/adapters/redis_storage.rb, line 63
def incr(key)
  Lit.redis.incr(_prefixed_key(key))
end
key?(key)
Alias for: has_key?
keys() click to toggle source
# File lib/lit/adapters/redis_storage.rb, line 54
def keys
  Lit.redis.keys(_prefixed_key + '*')
end
prefix() click to toggle source
# File lib/lit/adapters/redis_storage.rb, line 73
def prefix
  _prefix
end
sort() click to toggle source
# File lib/lit/adapters/redis_storage.rb, line 67
def sort
  Lit.redis.keys.sort.map do |k|
    [k, self.[](k)]
  end
end

Private Instance Methods

_prefix() click to toggle source
# File lib/lit/adapters/redis_storage.rb, line 79
def _prefix
  prefix = 'lit:'
  if Lit.storage_options.is_a?(Hash) && Lit.storage_options.key?(:prefix)
    prefix += "#{Lit.storage_options[:prefix]}:"
  end
  prefix
end
_prefixed_key(key = '') click to toggle source
# File lib/lit/adapters/redis_storage.rb, line 87
def _prefixed_key(key = '')
  _prefix + key.to_s
end
_prefixed_key_for_array(key = '') click to toggle source
# File lib/lit/adapters/redis_storage.rb, line 91
def _prefixed_key_for_array(key = '')
  _prefix + 'array_flags:' + key.to_s
end
_prefixed_key_for_nil(key = '') click to toggle source
# File lib/lit/adapters/redis_storage.rb, line 95
def _prefixed_key_for_nil(key = '')
  _prefix + 'nil_flags:' + key.to_s
end