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