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
53 54 55 56 57 58 59 |
# File 'lib/stream_rails/feed_manager.rb', line 53 def created_activity(instance) return unless StreamRails.enabled? && instance.activity_should_sync? activity = instance.create_activity feed = get_owner_feed(instance) feed.add_activity(activity) end |
#destroyed_activity(instance) ⇒ Object
61 62 63 64 65 66 |
# File 'lib/stream_rails/feed_manager.rb', line 61 def destroyed_activity(instance) return unless StreamRails.enabled? feed = 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 36 37 |
# File 'lib/stream_rails/feed_manager.rb', line 29 def follow_user(user_id, target_id) return unless StreamRails.enabled? target_feed = get_user_feed(target_id) @news_feeds.each do |_, feed| news_feed = 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) @news_feeds.transform_values { |feed_slug| get_feed(feed_slug, 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
49 50 51 |
# File 'lib/stream_rails/feed_manager.rb', line 49 def get_owner_feed(instance) 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
39 40 41 42 43 44 45 46 47 |
# File 'lib/stream_rails/feed_manager.rb', line 39 def unfollow_user(user_id, target_id) return unless StreamRails.enabled? target_feed = get_user_feed(target_id) @news_feeds.each do |_, feed| news_feed = get_feed(feed, user_id) news_feed.unfollow(target_feed.slug, target_feed.user_id) end end |