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