stream_rails 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 82fcbb047a9fc18b2f808bf7a0c9d24edc6fef5b
4
- data.tar.gz: 8741b89406b037ea2b6be3769e5663395661d185
3
+ metadata.gz: 0d3432a8955f14a1c5bc68728636624f4e32feb7
4
+ data.tar.gz: 07c4acdc2ece3b24277052b51547a07095f335fa
5
5
  SHA512:
6
- metadata.gz: 675e198519664358583be4d42e5265a0b7d74c4b3e212ec1296e9d34bad68e7e2277a97fe51902d24a33031f9aa6965d9ed25b39f4e93c5e11c1a42c99e0b55b
7
- data.tar.gz: 7b21994454b8f1c62e17f7a642738c9c725ef717f29776c97c5fbee17373b210ae94c9718d3b33f10bea0b6ddf30662ec87c06f516c40d634004a49551edb65f
6
+ metadata.gz: a03aafb8e658cc99d5808dc1ca1d56e2012ae647eefd26bd126b4b63a6ca74f3d026ea253bb56027a888e89e54192c74a4ddd4227c3981ce8e00999baa8a998f
7
+ data.tar.gz: 791fd74c07194ecbf7fdff17419531b1b71cdadc841a6e3df751c84bf34d2c0568c3b9ae7a8e6bac6d9b47b8ad3af60e7fe81ea1ce94e05c0e677f1e8ca68701
data/README.md CHANGED
@@ -6,7 +6,7 @@ Stream Rails
6
6
 
7
7
  This package helps you create activity streams & newsfeeds with Ruby on Rails and [GetStream.io](https://getstream.io).
8
8
 
9
- ###Activity Streams & Newsfeeds
9
+ ### Activity Streams & Newsfeeds
10
10
 
11
11
  ![](https://dvqg2dogggmn6.cloudfront.net/images/mood-home.png)
12
12
 
@@ -52,11 +52,15 @@ You can check out our example app built using this library on Github [https://gi
52
52
 
53
53
  You can install ```stream_rails``` as you would any other gem:
54
54
 
55
- ```gem install stream_rails```
55
+ ```
56
+ gem install stream_rails
57
+ ```
56
58
 
57
59
  or in your Gemfile:
58
60
 
59
- ```gem 'stream_rails'```
61
+ ```
62
+ gem 'stream_rails'
63
+ ```
60
64
 
61
65
 
62
66
  ### Setup
@@ -76,6 +80,9 @@ StreamRails.configure do |config|
76
80
  # If you use custom feed names, e.g.: timeline_flat, timeline_aggregated,
77
81
  # use this, otherwise omit:
78
82
  config.news_feeds = { flat: "timeline_flat", aggregated: "timeline_aggregated" }
83
+ # Point to the notifications feed group providing the name, omit if you don't
84
+ # have a notifications feed
85
+ config.notification_feed = "notification"
79
86
  end
80
87
  ```
81
88
 
@@ -265,7 +272,7 @@ class Pin < ActiveRecord::Base
265
272
 
266
273
  def activity_notify
267
274
  if self.is_retweet
268
- [feed_manager.get_notification_feed(self.parent.user_id)]
275
+ [StreamRails.feed_manager.get_notification_feed(self.parent.user_id)]
269
276
  end
270
277
  end
271
278
 
@@ -290,7 +297,7 @@ class Follow < ActiveRecord::Base
290
297
  as_activity
291
298
 
292
299
  def activity_notify
293
- [feed_manager.get_notification_feed(self.target_id)]
300
+ [StreamRails.feed_manager.get_notification_feed(self.target_id)]
294
301
  end
295
302
 
296
303
  def activity_object
@@ -301,12 +308,17 @@ end
301
308
  ```
302
309
 
303
310
  ####Follow a feed
304
- This is how you create the newsfeeds you need to notify the system about follow relationships. The manager comes with APIs to let a user's news feed follow another user's feed. This code lets the current user's flat and aggregated feeds follow the target_user's personal feed.
311
+
312
+ In order to populate newsfeeds, you need to notify the system about follow relationships.
313
+
314
+ The current user's flat and aggregated feeds will follow the `target_user`'s user feed, with the following code:
305
315
 
306
316
  ```
307
317
  StreamRails.feed_manager.follow_user(user_id, target_id)
308
318
  ```
309
319
 
320
+ ![](http://i.imgur.com/bLywmPj.png)
321
+
310
322
  ### Showing the newsfeed
311
323
 
312
324
  ####Activity enrichment
@@ -347,25 +359,30 @@ The ```render_activity``` view helper will render the activity by picking the pa
347
359
  The helper will automatically send ```activity``` to the local scope of the partial; additional parameters can be send as well as use different layouts, and prefix the name
348
360
 
349
361
 
350
- eg. renders the activity partial using the ```small_activity``` layout.
362
+ e.g. renders the activity partial using the ```small_activity``` layout:
351
363
 
352
364
  ```
353
365
  <%= render_activity activity, :layout => "small_activity" %>
354
366
  ```
355
367
 
356
-
357
- eg. prefixes the name of the template with "notification_"
368
+ e.g. prefixes the name of the template with "notification_":
358
369
 
359
370
  ```
360
371
  <%= render_activity activity, :prefix => "notification_" %>
361
372
  ```
362
373
 
363
- eg. adds the extra_var to the partial scope
374
+ e.g. adds the extra_var to the partial scope:
364
375
 
365
376
  ```
366
377
  <%= render_activity activity, :locals => {:extra_var => 42} %>
367
378
  ```
368
379
 
380
+ e.g. renders the activity partial using the `notifications` partial root, which will render the partial with the path `notifications/#{ACTIVITY_VERB}`
381
+
382
+ ```
383
+ <%= render_activity activity, :partial_root => "notifications" %>
384
+ ```
385
+
369
386
  ####Pagination
370
387
 
371
388
  For simple pagination you can use the [stream-ruby API](https://github.com/getstream/stream-ruby),
@@ -47,7 +47,11 @@ module StreamRails
47
47
  end
48
48
 
49
49
  def activity_object
50
- fail NotImplementedError, 'Activity models must define `#activity_object`'
50
+ fail NotImplementedError, "Activity models must define `#activity_object` - missing on `#{self.class}`"
51
+ end
52
+
53
+ def activity_target
54
+ nil
51
55
  end
52
56
 
53
57
  def activity_verb
@@ -62,6 +66,10 @@ module StreamRails
62
66
  StreamRails.create_reference(self)
63
67
  end
64
68
 
69
+ def activity_target_id
70
+ StreamRails.create_reference(activity_target) if activity_target
71
+ end
72
+
65
73
  def activity_notify
66
74
  end
67
75
 
@@ -83,6 +91,7 @@ module StreamRails
83
91
  verb: activity_verb,
84
92
  object: activity_object_id,
85
93
  foreign_id: activity_foreign_id,
94
+ target: activity_target_id,
86
95
  time: activity_time
87
96
  }
88
97
  activity[:to] = activity_notify.map(&:id) unless activity_notify.nil?
@@ -29,7 +29,7 @@ module StreamRails
29
29
 
30
30
  class Enrich
31
31
  def initialize(fields = nil)
32
- @fields = fields || [:actor, :object]
32
+ @fields = fields || [:actor, :object, :target]
33
33
  end
34
34
 
35
35
  def model_field?(field_value)
@@ -1,3 +1,3 @@
1
1
  module StreamRails
2
- VERSION = '2.4.0'
2
+ VERSION = '2.5.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stream_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tommaso Barbugli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-23 00:00:00.000000000 Z
11
+ date: 2016-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 2.2.5
47
+ version: '2.4'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 2.2.5
54
+ version: '2.4'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: activerecord
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -151,7 +151,7 @@ dependencies:
151
151
  - !ruby/object:Gem::Version
152
152
  version: '4.29'
153
153
  description:
154
- email: tbarbugli@gmail.com
154
+ email: tommaso@getstream.io
155
155
  executables: []
156
156
  extensions: []
157
157
  extra_rdoc_files:
@@ -171,7 +171,7 @@ files:
171
171
  - lib/stream_rails/sync_policies.rb
172
172
  - lib/stream_rails/utils/view_helpers.rb
173
173
  - lib/stream_rails/version.rb
174
- homepage: http://github.com/tbarbugli/stream-ruby
174
+ homepage: http://github.com/GetStream/stream-rails
175
175
  licenses:
176
176
  - Apache-2.0
177
177
  metadata: {}
@@ -191,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
191
  version: '0'
192
192
  requirements: []
193
193
  rubyforge_project:
194
- rubygems_version: 2.4.7
194
+ rubygems_version: 2.5.1
195
195
  signing_key:
196
196
  specification_version: 4
197
197
  summary: A gem that provides a client interface for getstream.io