lib/blendris/reference_set.rb in blendris-0.0.2 vs lib/blendris/reference_set.rb in blendris-0.0.3
- old
+ new
@@ -1,16 +1,20 @@
module Blendris
+ # RedisReferenceSet is a wrapper to a Redis set value and serves
+ # as a pointer to multiple other blendris objects.
+
class RedisReferenceSet < RedisReferenceBase
include RedisNode
include Enumerable
def refs
@refs ||= RedisSet.new(@key)
end
+ # TODO set should be a real set, while << appends
def set(*objs)
objs.flatten!
objs.compact!
objs.each do |obj|
@@ -18,17 +22,20 @@
refs << refkey
apply_reverse_add obj
end
end
+ notify_changed if objs.count > 0
+
self
end
alias :<< :set
def delete(obj)
if refkey = self.class.cast_to_redis(obj, @options)
deleted = refs.delete(refkey)
apply_reverse_delete(obj) if deleted
+ notify_changed
deleted
end
end
def get