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
|