module RelationalRedisMapper::ClassMethods

Public Instance Methods

all() click to toggle source
# File lib/relational_redis_mapper.rb, line 132
 def all
  redis.all_objects(class_key)
end
class_key() click to toggle source
# File lib/relational_redis_mapper.rb, line 136
def class_key
  key_gen.class_key
end
find(id) click to toggle source
# File lib/relational_redis_mapper.rb, line 116
def find(id)
  redis.find_object(class_key, id) 
end
find_all_by_ids(ids) click to toggle source
# File lib/relational_redis_mapper.rb, line 120
def find_all_by_ids(ids)
  redis.find_objects(class_key, ids)
end
get_all_ids(attr, val) click to toggle source
# File lib/relational_redis_mapper.rb, line 128
def get_all_ids(attr, val)
  redis.find_ids key_gen.query_key(attr, val)
end
has_many(opt)
Alias for: has_many_ordered
has_many_ordered(opt) click to toggle source
# File lib/relational_redis_mapper.rb, line 100
def has_many_ordered(opt)
  opt.each do |relation_collection, order_by|

    define_method relation_collection do 
      instance_variable_set(
        "@#{relation_collection}", 
        instance_variable_get("@#{relation_collection}") ||
        Relation.new(self, relation_collection, order_by) 
      )
    end

  end
end
Also aliased as: has_many
query_attr(*keys) click to toggle source
# File lib/relational_redis_mapper.rb, line 89
def query_attr(*keys)
  @query_keys = keys
  keys.each do |key|

    define_singleton_method "find_by_#{key}" do |query| 
      find redis.find_id(key_gen.query_key(key, query))
    end

  end
end
validate_uniqueness_of(*args) click to toggle source
# File lib/relational_redis_mapper.rb, line 85
def validate_uniqueness_of(*args)
  @uniqueness_attr = args
end
where(attr, attr_val) click to toggle source
# File lib/relational_redis_mapper.rb, line 124
def where(attr, attr_val)
  find_all_by_ids get_all_ids(attr, attr_val) 
end

Private Instance Methods

key_gen() click to toggle source
# File lib/relational_redis_mapper.rb, line 146
def key_gen
  @key_gen ||= KeyGen.new(self)
end
redis() click to toggle source
# File lib/relational_redis_mapper.rb, line 142
def redis
  Redis.get
end