Module: ActivityFeed::Feed
- Included in:
- ActivityFeed
- Defined in:
- lib/activity_feed/feed.rb
Instance Method Summary collapse
-
#expire_feed(user_id, seconds, aggregate = ActivityFeed.aggregate) ⇒ Object
(also: #expire_feed_in)
Expire an activity feed after a set number of seconds.
-
#expire_feed_at(user_id, timestamp, aggregate = ActivityFeed.aggregate) ⇒ Object
Expire an activity feed at a given timestamp.
-
#feed(user_id, page, aggregate = ActivityFeed.aggregate) ⇒ Object
Retrieve a page from the activity feed for a given
user_id. -
#feed_between_timestamps(user_id, starting_timestamp, ending_timestamp, aggregate = ActivityFeed.aggregate) ⇒ Object
Retrieve a page from the activity feed for a given
user_idbetween astarting_timestampand anending_timestamp. -
#full_feed(user_id, aggregate = ActivityFeed.aggregate) ⇒ Object
Retrieve the entire activity feed for a given
user_id. -
#remove_feeds(user_id) ⇒ Object
Remove the activity feeds for a given
user_id. -
#total_items_in_feed(user_id, aggregate = ActivityFeed.aggregate) ⇒ Object
(also: #total_items)
Return the total number of items in the activity feed.
-
#total_pages_in_feed(user_id, aggregate = ActivityFeed.aggregate, page_size = ActivityFeed.page_size) ⇒ Object
(also: #total_pages)
Return the total number of pages in the activity feed.
-
#trim_feed(user_id, starting_timestamp, ending_timestamp, aggregate = ActivityFeed.aggregate) ⇒ Object
Trim an activity feed between two timestamps.
Instance Method Details
#expire_feed(user_id, seconds, aggregate = ActivityFeed.aggregate) ⇒ Object Also known as: expire_feed_in
Expire an activity feed after a set number of seconds.
102 103 104 |
# File 'lib/activity_feed/feed.rb', line 102 def expire_feed(user_id, seconds, aggregate = ActivityFeed.aggregate) ActivityFeed.redis.expire(ActivityFeed.feed_key(user_id, aggregate), seconds) end |
#expire_feed_at(user_id, timestamp, aggregate = ActivityFeed.aggregate) ⇒ Object
Expire an activity feed at a given timestamp.
113 114 115 |
# File 'lib/activity_feed/feed.rb', line 113 def expire_feed_at(user_id, , aggregate = ActivityFeed.aggregate) ActivityFeed.redis.expireat(ActivityFeed.feed_key(user_id, aggregate), ) end |
#feed(user_id, page, aggregate = ActivityFeed.aggregate) ⇒ Object
Retrieve a page from the activity feed for a given user_id. You can configure ActivityFeed.items_loader with a Proc to retrieve items from, for example, your ORM (e.g. ActiveRecord) or your ODM (e.g. Mongoid), and have the page returned with loaded items rather than item IDs.
13 14 15 16 17 |
# File 'lib/activity_feed/feed.rb', line 13 def feed(user_id, page, aggregate = ActivityFeed.aggregate) feederboard = ActivityFeed.feederboard_for(user_id, aggregate) feed_items = feederboard.leaders(page, :page_size => ActivityFeed.page_size) load_feed_items(feed_items) end |
#feed_between_timestamps(user_id, starting_timestamp, ending_timestamp, aggregate = ActivityFeed.aggregate) ⇒ Object
Retrieve a page from the activity feed for a given user_id between a starting_timestamp and an ending_timestamp. You can configure ActivityFeed.items_loader with a Proc to retrieve items from, for example, your ORM (e.g. ActiveRecord) or your ODM (e.g. Mongoid), and have the feed data returned with loaded items rather than item IDs.
46 47 48 49 50 |
# File 'lib/activity_feed/feed.rb', line 46 def (user_id, , , aggregate = ActivityFeed.aggregate) feederboard = ActivityFeed.feederboard_for(user_id, aggregate) feed_items = feederboard.members_from_score_range(, ) load_feed_items(feed_items) end |
#full_feed(user_id, aggregate = ActivityFeed.aggregate) ⇒ Object
Retrieve the entire activity feed for a given user_id. You can configure ActivityFeed.items_loader with a Proc to retrieve items from, for example, your ORM (e.g. ActiveRecord) or your ODM (e.g. Mongoid), and have the page returned with loaded items rather than item IDs.
28 29 30 31 32 |
# File 'lib/activity_feed/feed.rb', line 28 def full_feed(user_id, aggregate = ActivityFeed.aggregate) feederboard = ActivityFeed.feederboard_for(user_id, aggregate) feed_items = feederboard.leaders(1, :page_size => feederboard.total_members) load_feed_items(feed_items) end |
#remove_feeds(user_id) ⇒ Object
Remove the activity feeds for a given user_id.
80 81 82 83 84 85 |
# File 'lib/activity_feed/feed.rb', line 80 def remove_feeds(user_id) ActivityFeed.redis.multi do |transaction| transaction.del(ActivityFeed.feed_key(user_id, false)) transaction.del(ActivityFeed.feed_key(user_id, true)) end end |
#total_items_in_feed(user_id, aggregate = ActivityFeed.aggregate) ⇒ Object Also known as: total_items
Return the total number of items in the activity feed.
71 72 73 |
# File 'lib/activity_feed/feed.rb', line 71 def total_items_in_feed(user_id, aggregate = ActivityFeed.aggregate) ActivityFeed.feederboard_for(user_id, aggregate).total_members end |
#total_pages_in_feed(user_id, aggregate = ActivityFeed.aggregate, page_size = ActivityFeed.page_size) ⇒ Object Also known as: total_pages
Return the total number of pages in the activity feed.
59 60 61 |
# File 'lib/activity_feed/feed.rb', line 59 def total_pages_in_feed(user_id, aggregate = ActivityFeed.aggregate, page_size = ActivityFeed.page_size) ActivityFeed.feederboard_for(user_id, aggregate).total_pages_in(ActivityFeed.feed_key(user_id, aggregate), page_size) end |
#trim_feed(user_id, starting_timestamp, ending_timestamp, aggregate = ActivityFeed.aggregate) ⇒ Object
Trim an activity feed between two timestamps.
93 94 95 |
# File 'lib/activity_feed/feed.rb', line 93 def trim_feed(user_id, , , aggregate = ActivityFeed.aggregate) ActivityFeed.feederboard_for(user_id, aggregate).remove_members_in_score_range(, ) end |