Class: StreamRails::FeedManager
- Inherits:
-
Object
- Object
- StreamRails::FeedManager
- Defined in:
- lib/stream_rails/feed_manager.rb
Overview
Class used to manage feeds
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
Instance Method Summary collapse
- #created_activity(instance) ⇒ Object
- #destroyed_activity(instance) ⇒ Object
- #follow_user(user_id, target_id) ⇒ Object
- #get_feed(feed_type, user_id) ⇒ Object
- #get_news_feeds(user_id) ⇒ Object
- #get_notification_feed(user_id) ⇒ Object
- #get_owner_feed(instance) ⇒ Object
- #get_user_feed(user_id) ⇒ Object
-
#initialize(client, opts = {}) ⇒ FeedManager
constructor
A new instance of FeedManager.
- #unfollow_user(user_id, target_id) ⇒ Object
Constructor Details
#initialize(client, opts = {}) ⇒ FeedManager
Returns a new instance of FeedManager.
6 7 8 9 10 11 |
# File 'lib/stream_rails/feed_manager.rb', line 6 def initialize(client, opts={}) @client = client @user_feed = opts[:user_feed] @news_feeds = opts[:news_feeds] @notification_feed = opts[:notification_feed] end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
4 5 6 |
# File 'lib/stream_rails/feed_manager.rb', line 4 def client @client end |
Instance Method Details
#created_activity(instance) ⇒ Object
49 50 51 52 53 |
# File 'lib/stream_rails/feed_manager.rb', line 49 def created_activity(instance) activity = instance.create_activity feed = self.get_owner_feed(instance) feed.add_activity(activity) end |
#destroyed_activity(instance) ⇒ Object
55 56 57 58 |
# File 'lib/stream_rails/feed_manager.rb', line 55 def destroyed_activity(instance) feed = self.get_owner_feed(instance) feed.remove(instance.activity_foreign_id, foreign_id=true) end |
#follow_user(user_id, target_id) ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/stream_rails/feed_manager.rb', line 29 def follow_user(user_id, target_id) target_feed = self.get_user_feed(target_id) @news_feeds.each do |_, feed| news_feed = self.get_feed(feed, user_id) news_feed.follow(target_feed.slug, target_feed.user_id) end end |
#get_feed(feed_type, user_id) ⇒ Object
25 26 27 |
# File 'lib/stream_rails/feed_manager.rb', line 25 def get_feed(feed_type, user_id) @client.feed(feed_type, user_id) end |
#get_news_feeds(user_id) ⇒ Object
17 18 19 |
# File 'lib/stream_rails/feed_manager.rb', line 17 def get_news_feeds(user_id) Hash[@news_feeds.map{ |k,v| [k, self.get_feed(k, user_id)] }] end |
#get_notification_feed(user_id) ⇒ Object
21 22 23 |
# File 'lib/stream_rails/feed_manager.rb', line 21 def get_notification_feed(user_id) @client.feed(@notification_feed, user_id) end |
#get_owner_feed(instance) ⇒ Object
45 46 47 |
# File 'lib/stream_rails/feed_manager.rb', line 45 def get_owner_feed(instance) self.get_feed(instance.activity_owner_feed, instance.activity_owner_id) end |
#get_user_feed(user_id) ⇒ Object
13 14 15 |
# File 'lib/stream_rails/feed_manager.rb', line 13 def get_user_feed(user_id) @client.feed(@user_feed, user_id) end |
#unfollow_user(user_id, target_id) ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/stream_rails/feed_manager.rb', line 37 def unfollow_user(user_id, target_id) target_feed = self.get_user_feed(target_id) @news_feeds.each do |_, feed| news_feed = self.get_feed(feed, user_id) news_feed.unfollow(target_feed.slug, target_feed.user_id) end end |