Module: Redis::Collections::ClassMethods

Defined in:
lib/redis/collections.rb

Instance Method Summary collapse

Instance Method Details

#collection(name, options = {}) ⇒ Object



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

def collection(name, options={})
  redis_objects[name.to_sym] = options.merge(:type => :collection)
  klass_name = '::' + self.name
  if options[:global]
    instance_eval <<-EndMethods
      def #{name}
        @#{name} ||= Redis::Collection.new(redis_field_key(:#{name}), #{klass_name}.redis, #{klass_name}.redis_objects[:#{name}])
      end
    EndMethods
    class_eval <<-EndMethods
      def #{name}
        self.class.#{name}
      end
    EndMethods
  else
    class_eval <<-EndMethods
      def #{name}
        @#{name} ||= Redis::Collection.new(redis_field_key(:#{name}), #{klass_name}.redis, #{klass_name}.redis_objects[:#{name}])
      end
    EndMethods
  end
end