class RelationalRedisMapper::Redis

Attributes

redis[R]
serializer[R]

Public Class Methods

get(opt={}) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 8
def get(opt={})
  @singleton ||= new(opt)
end
Also aliased as: set
new(opt) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 83
def initialize(opt)
  @redis = opt[:connection] 
  @serializer = opt[:serializer] || Marshal
end
set(opt={})
Alias for: get

Public Instance Methods

add_query_index(key,val) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 15
def add_query_index(key,val)
  redis.lpush key, val
end
add_uniq_index(key,val) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 43
def add_uniq_index(key,val)
  redis.set key, val
end
all_objects(key) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 35
def all_objects(key)
  redis.hgetall(key).values.map { |str| deserialize(str) }
end
delete_object(*args) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 60
def delete_object(*args)
  redis.hdel *args
end
deserialize(stringified) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 77
def deserialize(stringified)
  serializer.restore stringified
end
find_id(key) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 19
def find_id(key)
  redis.lindex key, 0
end
find_ids(key) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 23
def find_ids(key)
  redis.lrange(key, 0, -1).flatten
end
find_object(class_key, object_key) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 27
def find_object(class_key, object_key)
  deserialize redis.hget(class_key, object_key) rescue nil
end
find_objects(key, ids) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 31
def find_objects(key, ids)
  redis.hmget(key, ids).map { |str| deserialize(str) } rescue []
end
get_uniq_index(key) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 51
def get_uniq_index(key)
  redis.get key
end
method_missing(method, *args, &block) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 69
def method_missing(method, *args, &block)
  redis.send method, *args, &block
end
remove_indices() click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 64
def remove_indices
  query_keys.each { |attr| redis.lrem search_key(attr, send(attr)),1, uuid }
  uniqueness_attr.each { |attr| redis.del uniq_key(attr, send(attr)) }
end
rm_search_index(key,val) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 39
def rm_search_index(key,val)
  redis.lrem key,1,val
end
rm_uniq_index(key) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 47
def rm_uniq_index(key)
  redis.del key
end
save_object(*args) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 55
def save_object(*args)
  object = args.pop
  redis.hset *args, serialize(object)
end
serialize(object) click to toggle source
# File lib/relational_redis_mapper/redis.rb, line 73
def serialize(object)
  serializer.dump(object)
end