lib/activity_feed.rb in activity_feed-1.2.1 vs lib/activity_feed.rb in activity_feed-1.3.0

- old
+ new

@@ -37,11 +37,15 @@ end def self.create_item(attributes, aggregate = ActivityFeed.aggregate) item = @@persistence.new(attributes) item.save - ActivityFeed.aggregate_item(item) if aggregate + if aggregate + ([item.user_id] | Array(aggregate)).each do |aggregation_id| + ActivityFeed.aggregate_item(item, aggregation_id) + end + end item end def self.aggregate_item(item, user_id = nil) user_id_for_aggregate = user_id.nil? ? item.user_id : user_id @@ -67,11 +71,25 @@ ActivityFeed::Ohm::Item[item_or_item_id] else @@persistence.find(item_or_item_id) end end - + + def self.update_item(user_id, item_id, timestamp, aggregate = false) + unless @@persistence_type == :memory + key = feed_key(user_id, aggregate) + ActivityFeed.redis.zadd(key, timestamp, item_id) + end + end + + def self.delete_item(user_id, item_id, aggregate = false) + unless @@persistence_type == :memory + key = feed_key(user_id, aggregate) + ActivityFeed.redis.zrem(key, item_id) + end + end + def self.feed_key(user_id, aggregate = false) if aggregate "#{ActivityFeed.namespace}:#{ActivityFeed.key}:#{ActivityFeed.aggregate_key}:#{user_id}" else "#{ActivityFeed.namespace}:#{ActivityFeed.key}:#{user_id}" @@ -83,8 +101,8 @@ end self.namespace = 'activity' self.key = 'feed' self.aggregate_key = 'aggregate' - self.aggregate = true + self.aggregate = [] self.persistence = :memory end