Class: StreamRails::FeedManager

Inherits:
Object
  • Object
show all
Defined in:
lib/stream_rails/feed_manager.rb

Overview

Class used to manage feeds

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#clientObject (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