social_stream-base 0.22.4 → 0.23.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.
Files changed (47) hide show
  1. data/app/controllers/activities_controller.rb +14 -12
  2. data/app/controllers/api_controller.rb +0 -13
  3. data/app/controllers/frontpage_controller.rb +0 -6
  4. data/app/models/activity.rb +21 -61
  5. data/app/models/actor.rb +4 -8
  6. data/app/models/audience.rb +2 -0
  7. data/app/models/comment.rb +2 -1
  8. data/app/models/group.rb +0 -2
  9. data/app/models/relation.rb +5 -1
  10. data/app/models/relation/custom.rb +17 -4
  11. data/app/models/tie.rb +0 -2
  12. data/app/models/user.rb +0 -2
  13. data/app/views/activities/_options.html.erb +1 -1
  14. data/app/views/activities/index.atom.builder +48 -0
  15. data/app/views/activity_objects/_activity_object.atom.erb +1 -0
  16. data/config/locales/en.yml +8 -0
  17. data/config/locales/es.yml +8 -0
  18. data/config/routes.rb +0 -8
  19. data/lib/rails/social_stream.rb +1 -1
  20. data/lib/social_stream-base.rb +5 -0
  21. data/lib/social_stream/ability/base.rb +4 -16
  22. data/lib/social_stream/activity_streams.rb +39 -0
  23. data/lib/social_stream/activity_streams/subtype.rb +11 -0
  24. data/lib/social_stream/activity_streams/supertype.rb +12 -0
  25. data/lib/social_stream/base/dependencies.rb +2 -0
  26. data/lib/social_stream/base/engine.rb +6 -0
  27. data/lib/social_stream/base/version.rb +1 -1
  28. data/lib/social_stream/models/object.rb +5 -0
  29. data/lib/social_stream/models/subject.rb +1 -1
  30. data/lib/social_stream/models/subtype.rb +2 -0
  31. data/lib/social_stream/models/supertype.rb +2 -0
  32. data/social_stream-base.gemspec +2 -0
  33. data/spec/controllers/activities_controller_spec.rb +18 -0
  34. data/spec/controllers/frontpage_controller_spec.rb +0 -5
  35. data/spec/models/activity_wall_spec.rb +96 -0
  36. data/spec/models/post_authorization_spec.rb +370 -0
  37. data/spec/models/post_spec.rb +0 -2
  38. data/spec/models/relation_spec.rb +22 -0
  39. data/spec/social_stream_activity_streams_spec.rb +16 -0
  40. data/spec/social_stream_spec.rb +1 -1
  41. metadata +27 -8
  42. data/app/assets/images/logos/actor/remote_subject.png +0 -0
  43. data/app/assets/images/logos/actor/remote_user.png +0 -0
  44. data/app/controllers/subjects_controller.rb +0 -7
  45. data/app/views/api/activity_atom_feed.atom.builder +0 -40
  46. data/app/views/frontpage/host_meta.xml.builder +0 -11
  47. data/spec/models/activity_authorization_spec.rb +0 -354
@@ -125,6 +125,4 @@ describe Post do
125
125
  Post.authored_by(post.author).should include(post)
126
126
  end
127
127
  end
128
-
129
-
130
128
  end
@@ -74,5 +74,27 @@ describe Relation do
74
74
  end
75
75
  end
76
76
  end
77
+
78
+ describe 'with follow permission' do
79
+ before do
80
+ @relation = Relation.create!
81
+ @relation.permissions << Permission.find_or_create_by_action('follow')
82
+ end
83
+
84
+ it 'should follow?' do
85
+ @relation.follow?.should be_true
86
+ end
87
+ end
88
+
89
+ describe 'without follow permission' do
90
+ before do
91
+ @relation = Relation.create!
92
+ end
93
+
94
+ it 'should follow?' do
95
+ @relation.follow?.should be_false
96
+ end
97
+ end
98
+
77
99
  end
78
100
 
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe SocialStream::ActivityStreams do
4
+ it "should find by type" do
5
+ SocialStream::ActivityStreams.model(:person).should == User
6
+ end
7
+
8
+ it "should return Post as default model" do
9
+ SocialStream::ActivityStreams.model!(:_test).should == Post
10
+ end
11
+
12
+ it "should find by model" do
13
+ SocialStream::ActivityStreams.type(User).should == :person
14
+ end
15
+ end
16
+
@@ -4,4 +4,4 @@ describe SocialStream do
4
4
  it "should be valid" do
5
5
  SocialStream.should be_a(Module)
6
6
  end
7
- end
7
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: social_stream-base
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.4
4
+ version: 0.23.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-09-18 00:00:00.000000000 Z
13
+ date: 2012-10-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: deep_merge
@@ -44,6 +44,22 @@ dependencies:
44
44
  - - ! '>='
45
45
  - !ruby/object:Gem::Version
46
46
  version: 3.1.0
47
+ - !ruby/object:Gem::Dependency
48
+ name: rails_engine_decorators
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
47
63
  - !ruby/object:Gem::Dependency
48
64
  name: ancestry
49
65
  requirement: !ruby/object:Gem::Requirement
@@ -685,8 +701,6 @@ files:
685
701
  - app/assets/images/loading.gif
686
702
  - app/assets/images/logo.png
687
703
  - app/assets/images/logos/actor/group.png
688
- - app/assets/images/logos/actor/remote_subject.png
689
- - app/assets/images/logos/actor/remote_user.png
690
704
  - app/assets/images/logos/actor/user.png
691
705
  - app/assets/images/logos/contact/group.png
692
706
  - app/assets/images/logos/contact/user.png
@@ -792,7 +806,6 @@ files:
792
806
  - app/controllers/relation/customs_controller.rb
793
807
  - app/controllers/search_controller.rb
794
808
  - app/controllers/settings_controller.rb
795
- - app/controllers/subjects_controller.rb
796
809
  - app/controllers/tags_controller.rb
797
810
  - app/controllers/ties_controller.rb
798
811
  - app/controllers/users_controller.rb
@@ -848,6 +861,7 @@ files:
848
861
  - app/views/activities/_options.html.erb
849
862
  - app/views/activities/_root.html.erb
850
863
  - app/views/activities/_wall.html.erb
864
+ - app/views/activities/index.atom.builder
851
865
  - app/views/activities/index.html.erb
852
866
  - app/views/activities/index.js.erb
853
867
  - app/views/activity_actions/_follow_form.html.erb
@@ -855,10 +869,10 @@ files:
855
869
  - app/views/activity_actions/_update.js.erb
856
870
  - app/views/activity_actions/create.js.erb
857
871
  - app/views/activity_actions/update.js.erb
872
+ - app/views/activity_objects/_activity_object.atom.erb
858
873
  - app/views/activity_objects/_activity_object.html.erb
859
874
  - app/views/actors/_actor.html.erb
860
875
  - app/views/actors/_actor_cheesecake.html.erb
861
- - app/views/api/activity_atom_feed.atom.builder
862
876
  - app/views/audience/_list.html.erb
863
877
  - app/views/audience/index.js.erb
864
878
  - app/views/avatars/index.html.erb
@@ -915,7 +929,6 @@ files:
915
929
  - app/views/frontpage/_caracteristics.html.erb
916
930
  - app/views/frontpage/_social_networks.html.erb
917
931
  - app/views/frontpage/_sponsor.html.erb
918
- - app/views/frontpage/host_meta.xml.builder
919
932
  - app/views/frontpage/index.html.erb
920
933
  - app/views/groups/_group.html.erb
921
934
  - app/views/groups/_group_focus_search.html.erb
@@ -1102,6 +1115,9 @@ files:
1102
1115
  - lib/social_stream-base.rb
1103
1116
  - lib/social_stream/ability.rb
1104
1117
  - lib/social_stream/ability/base.rb
1118
+ - lib/social_stream/activity_streams.rb
1119
+ - lib/social_stream/activity_streams/subtype.rb
1120
+ - lib/social_stream/activity_streams/supertype.rb
1105
1121
  - lib/social_stream/base/dependencies.rb
1106
1122
  - lib/social_stream/base/engine.rb
1107
1123
  - lib/social_stream/base/thinking-sphinx.rb
@@ -1137,6 +1153,7 @@ files:
1137
1153
  - lib/tasks/workers.rake
1138
1154
  - lib/thinking-sphinx/social_stream.rb
1139
1155
  - social_stream-base.gemspec
1156
+ - spec/controllers/activities_controller_spec.rb
1140
1157
  - spec/controllers/audience_controller_spec.rb
1141
1158
  - spec/controllers/comments_controller_spec.rb
1142
1159
  - spec/controllers/contacts_controller_spec.rb
@@ -1201,18 +1218,20 @@ files:
1201
1218
  - spec/integration/navigation_spec.rb
1202
1219
  - spec/integration/resque_access_spec.rb
1203
1220
  - spec/models/activity_action_spec.rb
1204
- - spec/models/activity_authorization_spec.rb
1205
1221
  - spec/models/activity_spec.rb
1222
+ - spec/models/activity_wall_spec.rb
1206
1223
  - spec/models/actor_spec.rb
1207
1224
  - spec/models/contact_spec.rb
1208
1225
  - spec/models/group_spec.rb
1209
1226
  - spec/models/like_spec.rb
1227
+ - spec/models/post_authorization_spec.rb
1210
1228
  - spec/models/post_spec.rb
1211
1229
  - spec/models/profile_spec.rb
1212
1230
  - spec/models/relation_follow_spec.rb
1213
1231
  - spec/models/relation_spec.rb
1214
1232
  - spec/models/tie_spec.rb
1215
1233
  - spec/models/user_spec.rb
1234
+ - spec/social_stream_activity_streams_spec.rb
1216
1235
  - spec/social_stream_spec.rb
1217
1236
  - spec/spec_helper.rb
1218
1237
  - spec/support/cancan.rb
@@ -1,7 +0,0 @@
1
- class SubjectsController < ApplicationController
2
- def lrdd
3
- actor = Actor.find_by_webfinger!(params[:id])
4
-
5
- redirect_to polymorphic_path(actor.subject, :format => :xrd)
6
- end
7
- end
@@ -1,40 +0,0 @@
1
- atom_feed({'xmlns:activity' => 'http://activitystrea.ms/spec/1.0/'}) do |feed|
2
- feed.title(@subject.name + ' public stream')
3
- feed.updated(@activities.first.updated_at)
4
- feed.author do
5
- feed.name(@subject.name)
6
- end
7
-
8
- for activity in @activities
9
- feed.entry(activity) do |entry|
10
- if activity.class.name != "Tie" and activity.activity_verb.name == "post"
11
- #Atom compliant for not ActivityStream readers
12
- entry.title('Activity')
13
- entry.summary(activity.direct_object.text)
14
-
15
- #ActivityStream compliant
16
-
17
- entry.author do |a|
18
- a.name(activity.sender_subject.name)
19
- a.tag!('activity:object-type','person')
20
- end
21
-
22
- entry.tag!('activity:verb',activity.activity_verb.name)
23
-
24
- entry.tag!('activity:object') do |act_ob|
25
- act_ob.title('Activity')
26
- act_ob.tag!('activity:object-type','status')
27
- act_ob.publised(activity.created_at)
28
- end
29
-
30
- entry.content(activity.direct_object.text,:type=>'text/html')
31
- end
32
- end
33
- end
34
-
35
- feed.link :rel => 'self', :href=>request.url
36
- feed.link :rel => 'next', :href=>api_my_home_url+'?page='+(params[:page].to_i+1).to_s
37
- if params[:page].to_i != 1
38
- feed.link :rel => 'previous', :href=>api_my_home_url+'?page='+(params[:page].to_i-1).to_s
39
- end
40
- end
@@ -1,11 +0,0 @@
1
- xml.instruct!
2
- xml.XRD :xmlns => 'http://docs.oasis-open.org/ns/xri/xrd-1.0',
3
- "xmlns:hm" => 'http://host-meta.net/ns/1.0' do
4
-
5
- xml.tag! "hm:Host", request.host_with_port
6
-
7
- xml.Link :rel => "lrdd",
8
- :template => "#{ root_url }subjects/lrdd/{uri}",
9
- :type => "application/xrd+xml"
10
-
11
- end
@@ -1,354 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module ActivityTestHelper
4
- def create_activity(contact, relations)
5
- @activity = Factory(:post,
6
- :author_id => contact.sender.id,
7
- :owner_id => contact.receiver.id,
8
- :user_author_id => contact.sender.id,
9
- :relation_ids => Array(Relation.normalize_id(relations))).post_activity
10
- end
11
-
12
- def create_ability_accessed_by(subject)
13
- @ability = Ability.new(subject)
14
- end
15
-
16
- def create_ability_accessed_by_related(tie_type)
17
- @tie = create_related_tie(tie_type)
18
- @related = @tie.receiver_subject
19
- @ability = Ability.new(@related)
20
- end
21
-
22
- def create_ability_accessed_publicly
23
- u = Factory(:user)
24
- @ability = Ability.new(u)
25
- end
26
-
27
- def create_related_tie(tie_type)
28
- Factory(tie_type, :contact => Factory(:contact, :sender => Actor.normalize(@subject)))
29
- end
30
-
31
- shared_examples_for "Allows Creating" do
32
- it "should allow create" do
33
- @ability.should be_able_to(:create, @activity)
34
- end
35
- end
36
-
37
- shared_examples_for "Allows Reading" do
38
- it "should allow read" do
39
- @ability.should be_able_to(:read, @activity)
40
- end
41
- end
42
-
43
- shared_examples_for "Allows Updating" do
44
- it "should allow update" do
45
- @ability.should be_able_to(:update, @activity)
46
- end
47
- end
48
-
49
- shared_examples_for "Allows Destroying" do
50
- it "should allow destroy" do
51
- @ability.should be_able_to(:destroy, @activity)
52
- end
53
- end
54
-
55
- shared_examples_for "Denies Creating" do
56
- it "should deny create" do
57
- @ability.should_not be_able_to(:create, @activity)
58
- end
59
- end
60
-
61
- shared_examples_for "Denies Reading" do
62
- it "should deny read" do
63
- @ability.should_not be_able_to(:read, @activity)
64
- end
65
- end
66
-
67
- shared_examples_for "Denies Updating" do
68
- it "should deny update" do
69
- @ability.should_not be_able_to(:update, @activity)
70
- end
71
- end
72
-
73
- shared_examples_for "Denies Destroying" do
74
- it "should deny destroy" do
75
- @ability.should_not be_able_to(:destroy, @activity)
76
- end
77
- end
78
-
79
- end
80
-
81
- describe Activity do
82
- include ActivityTestHelper
83
-
84
- context "user" do
85
- before(:all) do
86
- @subject = @user = Factory(:user)
87
- end
88
-
89
- context "with public activity" do
90
- before do
91
- contact = @user.contact_to!(@user)
92
- create_activity(contact, Relation::Public.instance)
93
- end
94
-
95
- describe "sender home" do
96
- it "should include activity" do
97
- @activity.sender.wall(:home).should include(@activity)
98
- end
99
- end
100
-
101
- describe "sender profile" do
102
- context "accessed by alien" do
103
- it "should include activity" do
104
- @activity.sender.wall(:profile,
105
- :for => Factory(:user)).should include(@activity)
106
- end
107
- end
108
-
109
- context "accessed by anonymous" do
110
- it "should include activity" do
111
- @activity.sender.wall(:profile,
112
- :for => nil).should include(@activity)
113
- end
114
- end
115
- end
116
- end
117
-
118
- describe "belonging to friend" do
119
- before do
120
- @tie = create_related_tie(:friend)
121
- create_activity(@tie.contact.inverse!, @tie.relation)
122
- end
123
-
124
- describe "accessed by sender" do
125
- before do
126
- create_ability_accessed_by(@tie.receiver_subject)
127
- end
128
-
129
- it_should_behave_like "Allows Creating"
130
- it_should_behave_like "Allows Reading"
131
- it_should_behave_like "Allows Updating"
132
- it_should_behave_like "Allows Destroying"
133
- end
134
-
135
- describe "accessed by different friend" do
136
- before do
137
- create_ability_accessed_by_related :friend
138
- end
139
-
140
- it_should_behave_like "Denies Creating"
141
- it_should_behave_like "Allows Reading"
142
- it_should_behave_like "Denies Updating"
143
- it_should_behave_like "Denies Destroying"
144
- end
145
-
146
- describe "accessed by acquaintance" do
147
- before do
148
- create_ability_accessed_by_related :acquaintance
149
- end
150
-
151
- it_should_behave_like "Denies Creating"
152
- it_should_behave_like "Denies Reading"
153
- it_should_behave_like "Denies Updating"
154
- it_should_behave_like "Denies Destroying"
155
- end
156
-
157
- describe "accessed publicly" do
158
- before do
159
- create_ability_accessed_publicly
160
- end
161
-
162
- it_should_behave_like "Denies Creating"
163
- it_should_behave_like "Denies Reading"
164
- it_should_behave_like "Denies Updating"
165
- it_should_behave_like "Denies Destroying"
166
- end
167
- end
168
-
169
- describe "belonging to user's friend relation" do
170
- before do
171
- create_activity(@user.contact_to!(@user), @user.relation_custom('friend'))
172
- end
173
-
174
- describe "accessed by the sender" do
175
- before do
176
- create_ability_accessed_by(@user)
177
- end
178
-
179
- it_should_behave_like "Allows Creating"
180
- it_should_behave_like "Allows Reading"
181
- it_should_behave_like "Allows Updating"
182
- it_should_behave_like "Allows Destroying"
183
- end
184
-
185
- describe "accessed by a friend" do
186
- before do
187
- create_ability_accessed_by_related :friend
188
- end
189
-
190
- it_should_behave_like "Denies Creating"
191
- it_should_behave_like "Allows Reading"
192
- it_should_behave_like "Denies Updating"
193
- it_should_behave_like "Denies Destroying"
194
- end
195
-
196
- describe "accessed by acquaintance" do
197
- before do
198
- create_ability_accessed_by_related :acquaintance
199
- end
200
-
201
- it_should_behave_like "Denies Creating"
202
- it_should_behave_like "Denies Reading"
203
- it_should_behave_like "Denies Updating"
204
- it_should_behave_like "Denies Destroying"
205
- end
206
-
207
- describe "accessed publicly" do
208
- before do
209
- create_ability_accessed_publicly
210
- end
211
-
212
- it_should_behave_like "Denies Creating"
213
- it_should_behave_like "Denies Reading"
214
- it_should_behave_like "Denies Updating"
215
- it_should_behave_like "Denies Destroying"
216
- end
217
- end
218
-
219
- describe "belonging to user's public relation" do
220
-
221
- before do
222
- create_activity(@user.contact_to!(@user), Relation::Public.instance)
223
- end
224
-
225
- describe "accessed by the sender" do
226
- before do
227
- create_ability_accessed_by(@user)
228
- end
229
-
230
- it_should_behave_like "Allows Creating"
231
- it_should_behave_like "Allows Reading"
232
- it_should_behave_like "Allows Updating"
233
- it_should_behave_like "Allows Destroying"
234
- end
235
-
236
- describe "accessed by a friend" do
237
- before do
238
- create_ability_accessed_by_related :friend
239
- end
240
-
241
- it_should_behave_like "Denies Creating"
242
- it_should_behave_like "Allows Reading"
243
- it_should_behave_like "Denies Updating"
244
- it_should_behave_like "Denies Destroying"
245
- end
246
-
247
- describe "accessed by acquaintance" do
248
- before do
249
- create_ability_accessed_by_related :acquaintance
250
- end
251
-
252
- it_should_behave_like "Denies Creating"
253
- it_should_behave_like "Allows Reading"
254
- it_should_behave_like "Denies Updating"
255
- it_should_behave_like "Denies Destroying"
256
- end
257
-
258
- describe "accessed publicly" do
259
- before do
260
- create_ability_accessed_publicly
261
- end
262
-
263
- it_should_behave_like "Denies Creating"
264
- it_should_behave_like "Allows Reading"
265
- it_should_behave_like "Denies Updating"
266
- it_should_behave_like "Denies Destroying"
267
- end
268
- end
269
-
270
- describe "belonging to other user's public relation" do
271
-
272
- before do
273
- @tie = Factory(:public)
274
- create_activity @tie.contact, Relation::Public.instance
275
- create_ability_accessed_by @tie.receiver_subject
276
- end
277
-
278
- it_should_behave_like "Denies Creating"
279
- end
280
-
281
- describe "build to non replied contact" do
282
- before do
283
- @tie = Factory(:friend, :contact => Factory(:contact, :sender => @user.actor))
284
- partner = @tie.receiver
285
- @activity = Activity.new :author => @user.actor,
286
- :user_author => @user.author,
287
- :owner => partner
288
-
289
- create_ability_accessed_by @tie.sender_subject
290
- end
291
-
292
- it_should_behave_like "Denies Creating"
293
- end
294
- end
295
-
296
- context "group" do
297
- before(:all) do
298
- @subject = @group = Factory(:group)
299
- end
300
-
301
- describe "belonging to member tie" do
302
- before do
303
- @tie = create_related_tie(:member)
304
- create_activity @tie.contact.inverse!, @tie.relation
305
- end
306
-
307
- describe "accessed by same member" do
308
- before do
309
- create_ability_accessed_by @tie.receiver_subject
310
- end
311
-
312
- it_should_behave_like "Allows Creating"
313
- it_should_behave_like "Allows Reading"
314
- it_should_behave_like "Allows Updating"
315
- it_should_behave_like "Allows Destroying"
316
- end
317
-
318
- describe "accessed by different member" do
319
- before do
320
- create_ability_accessed_by_related :member
321
- end
322
-
323
- it_should_behave_like "Denies Creating"
324
- it_should_behave_like "Allows Reading"
325
- it_should_behave_like "Denies Updating"
326
- it_should_behave_like "Denies Destroying"
327
- end
328
-
329
- describe "accessed by partner" do
330
- before do
331
- create_ability_accessed_by_related :partner
332
- end
333
-
334
- it_should_behave_like "Denies Creating"
335
- it_should_behave_like "Denies Reading"
336
- it_should_behave_like "Denies Updating"
337
- it_should_behave_like "Denies Destroying"
338
- end
339
-
340
- describe "accessed publicly" do
341
- before do
342
- create_ability_accessed_publicly
343
- end
344
-
345
- it_should_behave_like "Denies Creating"
346
- it_should_behave_like "Denies Reading"
347
- it_should_behave_like "Denies Updating"
348
- it_should_behave_like "Denies Destroying"
349
- end
350
- end
351
- end
352
- end
353
-
354
-