Module: Chimera::RedisObjects::ClassMethods

Defined in:
lib/chimera/redis_objects.rb

Instance Method Summary collapse

Instance Method Details

#defined_redis_objectsObject



9
10
11
# File 'lib/chimera/redis_objects.rb', line 9

def defined_redis_objects
  @defined_redis_objects || {}
end

#redis_object(name, type = :string, extra_opts = {}) ⇒ Object

available types include:

string, set, zset, list, counter


15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/chimera/redis_objects.rb', line 15

def redis_object(name, type = :string, extra_opts={})
  @defined_redis_objects ||= {}
  @defined_redis_objects[name.to_sym] = [type, extra_opts]
  define_method("#{name}") do
    @redis_objects ||= {}
    case type
    when :string then
      @redis_objects[name.to_sym] = Chimera::RedisObjectProxy::String.new(self, name, extra_opts)
    when :set then
      @redis_objects[name.to_sym] = Chimera::RedisObjectProxy::Set.new(self, name, extra_opts)
    when :zset then
      @redis_objects[name.to_sym] = Chimera::RedisObjectProxy::ZSet.new(self, name, extra_opts)
    when :list then
      @redis_objects[name.to_sym] = Chimera::RedisObjectProxy::List.new(self, name, extra_opts)
    when :counter then
      @redis_objects[name.to_sym] = Chimera::RedisObjectProxy::Counter.new(self, name, extra_opts)
    end
  end
end