social_stream 0.1.7 → 0.2.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.
- data/Gemfile.lock +48 -44
- data/app/controllers/ties_controller.rb +1 -0
- data/app/models/ability.rb +2 -0
- data/app/models/actor.rb +7 -8
- data/app/models/permission.rb +80 -0
- data/app/models/relation.rb +1 -6
- data/app/models/tie.rb +34 -42
- data/app/views/activities/_child.html.erb +1 -2
- data/app/views/activities/_jquery.html.erb +2 -3
- data/app/views/activities/_options.html.erb +1 -1
- data/app/views/activities/_root.html.erb +1 -2
- data/app/views/comments/_new.html.erb +18 -15
- data/app/views/groups/_followers.html.erb +16 -14
- data/app/views/groups/_group.html.erb +1 -1
- data/app/views/groups/_location.html.erb +3 -0
- data/app/views/groups/show.html.erb +2 -2
- data/app/views/home/_contacts.html.erb +2 -2
- data/app/views/home/_groups.html.erb +23 -0
- data/app/views/home/_options.html.erb +0 -6
- data/app/views/home/_right.html.erb +1 -6
- data/app/views/home/index.html.erb +3 -3
- data/app/views/posts/_post.html.erb +1 -1
- data/app/views/ties/_suggestions.html.erb +7 -1
- data/app/views/ties/_tie.html.erb +1 -1
- data/app/views/users/_contacts.html.erb +16 -18
- data/app/views/users/_groups.html.erb +1 -2
- data/app/views/users/_location.html.erb +3 -0
- data/app/views/users/_logo.html.erb +2 -4
- data/app/views/users/_menu.html.erb +3 -26
- data/app/views/users/_middle_show.html.erb +0 -1
- data/app/views/users/_options.html.erb +5 -0
- data/app/views/users/_right_show.html.erb +9 -0
- data/app/views/users/show.html.erb +2 -2
- data/config/locales/en.yml +3 -2
- data/lib/generators/social_stream/templates/public/images/btn/{btn_follower.png → btn_group.png} +0 -0
- data/lib/generators/social_stream/templates/public/images/logos/actor/group.png +0 -0
- data/lib/generators/social_stream/templates/public/images/logos/actor/user.png +0 -0
- data/lib/generators/social_stream/templates/public/images/logos/original/group.png +0 -0
- data/lib/generators/social_stream/templates/public/images/logos/original/user.png +0 -0
- data/lib/generators/social_stream/templates/public/images/logos/profile/group.png +0 -0
- data/lib/generators/social_stream/templates/public/images/logos/profile/user.png +0 -0
- data/lib/generators/social_stream/templates/public/images/logos/tie/group.png +0 -0
- data/lib/generators/social_stream/templates/public/images/logos/tie/user.png +0 -0
- data/lib/generators/social_stream/templates/public/images/{btn/title_background.png → title_background.png} +0 -0
- data/lib/generators/social_stream/templates/public/stylesheets/middle.css +1 -1
- data/lib/generators/social_stream/templates/public/stylesheets/right.css +1 -0
- data/lib/generators/social_stream/templates/seeds.yml +20 -20
- data/lib/social_stream/ability.rb +26 -0
- data/lib/social_stream/version.rb +1 -1
- data/lib/tasks/db/populate.rake +25 -6
- data/social_stream.gemspec +2 -1
- data/spec/dummy/db/seeds/social_stream.yml +43 -33
- data/spec/factories/tie.rb +15 -10
- data/spec/models/activity_spec.rb +83 -146
- data/spec/models/tie_spec.rb +113 -0
- metadata +52 -25
- data/spec/dummy/app/models/ability.rb +0 -23
data/spec/models/tie_spec.rb
CHANGED
@@ -26,5 +26,118 @@ describe Tie do
|
|
26
26
|
@relation.inverse).present?
|
27
27
|
end
|
28
28
|
end
|
29
|
+
|
30
|
+
describe "friend" do
|
31
|
+
before do
|
32
|
+
@tie = Factory(:friend)
|
33
|
+
end
|
34
|
+
|
35
|
+
describe ", sender" do
|
36
|
+
before do
|
37
|
+
@s = @tie.sender
|
38
|
+
end
|
39
|
+
|
40
|
+
it "creates activity" do
|
41
|
+
Tie.allowed(@s, 'create', 'activity').should include(@tie)
|
42
|
+
Tie.allowed(@s, 'create', 'activity').should include(@tie.related('public'))
|
43
|
+
Tie.allowed(@s, 'create', 'activity').should_not include(@tie.inverse)
|
44
|
+
Tie.allowed(@s, 'create', 'activity').should_not include(@tie.inverse.related('public'))
|
45
|
+
end
|
46
|
+
|
47
|
+
it "reads activity" do
|
48
|
+
Tie.allowed(@s, 'read', 'activity').should include(@tie)
|
49
|
+
Tie.allowed(@s, 'read', 'activity').should include(@tie.related('public'))
|
50
|
+
Tie.allowed(@s, 'read', 'activity').should include(@tie.inverse)
|
51
|
+
Tie.allowed(@s, 'read', 'activity').should include(@tie.inverse.related('public'))
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
describe ", friend" do
|
56
|
+
before do
|
57
|
+
@s = @tie.receiver
|
58
|
+
end
|
59
|
+
|
60
|
+
it "creates activity" do
|
61
|
+
Tie.allowed(@s, 'create', 'activity').should include(@tie.inverse)
|
62
|
+
Tie.allowed(@s, 'create', 'activity').should include(@tie.inverse.related('public'))
|
63
|
+
Tie.allowed(@s, 'create', 'activity').should_not include(@tie)
|
64
|
+
Tie.allowed(@s, 'create', 'activity').should_not include(@tie.related('public'))
|
65
|
+
end
|
66
|
+
|
67
|
+
it "reads activity" do
|
68
|
+
Tie.allowed(@s, 'read', 'activity').should include(@tie)
|
69
|
+
Tie.allowed(@s, 'read', 'activity').should include(@tie.related('public'))
|
70
|
+
Tie.allowed(@s, 'read', 'activity').should include(@tie.inverse)
|
71
|
+
Tie.allowed(@s, 'read', 'activity').should include(@tie.inverse.related('public'))
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe ", friend request" do
|
76
|
+
before do
|
77
|
+
@s = Factory(:friend_request, :receiver => @tie.receiver).sender
|
78
|
+
end
|
79
|
+
|
80
|
+
it "creates activity" do
|
81
|
+
Tie.allowed(@s, 'create', 'activity').should_not include(@tie)
|
82
|
+
Tie.allowed(@s, 'create', 'activity').should_not include(@tie.related('public'))
|
83
|
+
Tie.allowed(@s, 'create', 'activity').should_not include(@tie.inverse)
|
84
|
+
Tie.allowed(@s, 'create', 'activity').should_not include(@tie.inverse.related('public'))
|
85
|
+
end
|
86
|
+
|
87
|
+
it "reads activity" do
|
88
|
+
Tie.allowed(@s, 'read', 'activity').should_not include(@tie)
|
89
|
+
# Tie.allowed(@s, 'read', 'activity').should_not include(@tie.related('public'))
|
90
|
+
Tie.allowed(@s, 'read', 'activity').should_not include(@tie.inverse)
|
91
|
+
# Tie.allowed(@s, 'read', 'activity').should_not include(@tie.inverse.related('public'))
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
95
|
+
|
96
|
+
describe ", alien" do
|
97
|
+
before do
|
98
|
+
@s = Factory(:user)
|
99
|
+
end
|
100
|
+
|
101
|
+
it "creates activity" do
|
102
|
+
Tie.allowed(@s, 'create', 'activity').should_not include(@tie)
|
103
|
+
Tie.allowed(@s, 'create', 'activity').should_not include(@tie.related('public'))
|
104
|
+
Tie.allowed(@s, 'create', 'activity').should_not include(@tie.inverse)
|
105
|
+
Tie.allowed(@s, 'create', 'activity').should_not include(@tie.inverse.related('public'))
|
106
|
+
end
|
107
|
+
|
108
|
+
it "reads activity" do
|
109
|
+
Tie.allowed(@s, 'read', 'activity').should_not include(@tie)
|
110
|
+
Tie.allowed(@s, 'read', 'activity').should_not include(@tie.inverse)
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
describe "member" do
|
116
|
+
before do
|
117
|
+
@tie = Factory(:member)
|
118
|
+
end
|
119
|
+
|
120
|
+
describe ", sender" do
|
121
|
+
before do
|
122
|
+
@s = @tie.sender
|
123
|
+
end
|
124
|
+
|
125
|
+
it "updates activity" do
|
126
|
+
Tie.allowed(@s, 'update', 'activity').should include(@tie)
|
127
|
+
Tie.allowed(@s, 'update', 'activity').should include(@tie.related('public'))
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
describe ", member" do
|
132
|
+
before do
|
133
|
+
@s = Factory(:member, :receiver => @tie.receiver).sender
|
134
|
+
end
|
135
|
+
|
136
|
+
it "updates activity" do
|
137
|
+
Tie.allowed(@s, 'update', 'activity').should include(@tie)
|
138
|
+
Tie.allowed(@s, 'update', 'activity').should include(@tie.related('public'))
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
29
142
|
end
|
30
143
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: social_stream
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Antonio Tapiador
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-11-
|
19
|
+
date: 2010-11-17 00:00:00 +01:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -164,25 +164,41 @@ dependencies:
|
|
164
164
|
type: :runtime
|
165
165
|
version_requirements: *id009
|
166
166
|
- !ruby/object:Gem::Dependency
|
167
|
-
name:
|
167
|
+
name: will_paginate
|
168
168
|
prerelease: false
|
169
169
|
requirement: &id010 !ruby/object:Gem::Requirement
|
170
170
|
none: false
|
171
171
|
requirements:
|
172
172
|
- - ~>
|
173
173
|
- !ruby/object:Gem::Version
|
174
|
-
hash:
|
174
|
+
hash: 29
|
175
|
+
segments:
|
176
|
+
- 2
|
177
|
+
- 3
|
178
|
+
- 15
|
179
|
+
version: 2.3.15
|
180
|
+
type: :runtime
|
181
|
+
version_requirements: *id010
|
182
|
+
- !ruby/object:Gem::Dependency
|
183
|
+
name: rails
|
184
|
+
prerelease: false
|
185
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
186
|
+
none: false
|
187
|
+
requirements:
|
188
|
+
- - ~>
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
hash: 1
|
175
191
|
segments:
|
176
192
|
- 3
|
177
193
|
- 0
|
178
|
-
-
|
179
|
-
version: 3.0.
|
194
|
+
- 3
|
195
|
+
version: 3.0.3
|
180
196
|
type: :development
|
181
|
-
version_requirements: *
|
197
|
+
version_requirements: *id011
|
182
198
|
- !ruby/object:Gem::Dependency
|
183
199
|
name: capybara
|
184
200
|
prerelease: false
|
185
|
-
requirement: &
|
201
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
186
202
|
none: false
|
187
203
|
requirements:
|
188
204
|
- - ~>
|
@@ -194,11 +210,11 @@ dependencies:
|
|
194
210
|
- 9
|
195
211
|
version: 0.3.9
|
196
212
|
type: :development
|
197
|
-
version_requirements: *
|
213
|
+
version_requirements: *id012
|
198
214
|
- !ruby/object:Gem::Dependency
|
199
215
|
name: sqlite3-ruby
|
200
216
|
prerelease: false
|
201
|
-
requirement: &
|
217
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
202
218
|
none: false
|
203
219
|
requirements:
|
204
220
|
- - ">="
|
@@ -208,11 +224,11 @@ dependencies:
|
|
208
224
|
- 0
|
209
225
|
version: "0"
|
210
226
|
type: :development
|
211
|
-
version_requirements: *
|
227
|
+
version_requirements: *id013
|
212
228
|
- !ruby/object:Gem::Dependency
|
213
229
|
name: ruby-debug
|
214
230
|
prerelease: false
|
215
|
-
requirement: &
|
231
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
216
232
|
none: false
|
217
233
|
requirements:
|
218
234
|
- - ~>
|
@@ -224,11 +240,11 @@ dependencies:
|
|
224
240
|
- 3
|
225
241
|
version: 0.10.3
|
226
242
|
type: :development
|
227
|
-
version_requirements: *
|
243
|
+
version_requirements: *id014
|
228
244
|
- !ruby/object:Gem::Dependency
|
229
245
|
name: rspec-rails
|
230
246
|
prerelease: false
|
231
|
-
requirement: &
|
247
|
+
requirement: &id015 !ruby/object:Gem::Requirement
|
232
248
|
none: false
|
233
249
|
requirements:
|
234
250
|
- - ~>
|
@@ -240,11 +256,11 @@ dependencies:
|
|
240
256
|
- 0
|
241
257
|
version: 2.0.0
|
242
258
|
type: :development
|
243
|
-
version_requirements: *
|
259
|
+
version_requirements: *id015
|
244
260
|
- !ruby/object:Gem::Dependency
|
245
261
|
name: factory_girl
|
246
262
|
prerelease: false
|
247
|
-
requirement: &
|
263
|
+
requirement: &id016 !ruby/object:Gem::Requirement
|
248
264
|
none: false
|
249
265
|
requirements:
|
250
266
|
- - ~>
|
@@ -256,11 +272,11 @@ dependencies:
|
|
256
272
|
- 2
|
257
273
|
version: 1.3.2
|
258
274
|
type: :development
|
259
|
-
version_requirements: *
|
275
|
+
version_requirements: *id016
|
260
276
|
- !ruby/object:Gem::Dependency
|
261
277
|
name: forgery
|
262
278
|
prerelease: false
|
263
|
-
requirement: &
|
279
|
+
requirement: &id017 !ruby/object:Gem::Requirement
|
264
280
|
none: false
|
265
281
|
requirements:
|
266
282
|
- - ~>
|
@@ -272,7 +288,7 @@ dependencies:
|
|
272
288
|
- 6
|
273
289
|
version: 0.3.6
|
274
290
|
type: :development
|
275
|
-
version_requirements: *
|
291
|
+
version_requirements: *id017
|
276
292
|
description: Ruby on Rails engine supporting social networking features and activity streams.
|
277
293
|
email:
|
278
294
|
executables: []
|
@@ -302,6 +318,7 @@ files:
|
|
302
318
|
- app/helpers/groups_helper.rb
|
303
319
|
- app/helpers/ties_helper.rb
|
304
320
|
- app/helpers/users_helper.rb
|
321
|
+
- app/models/ability.rb
|
305
322
|
- app/models/activity.rb
|
306
323
|
- app/models/activity_object.rb
|
307
324
|
- app/models/activity_object_activity.rb
|
@@ -336,6 +353,7 @@ files:
|
|
336
353
|
- app/views/groups/_followers.html.erb
|
337
354
|
- app/views/groups/_group.html.erb
|
338
355
|
- app/views/groups/_index.html.erb
|
356
|
+
- app/views/groups/_location.html.erb
|
339
357
|
- app/views/groups/_logo.html.erb
|
340
358
|
- app/views/groups/_middle_index.html.erb
|
341
359
|
- app/views/groups/_middle_show.html.erb
|
@@ -345,6 +363,7 @@ files:
|
|
345
363
|
- app/views/groups/index.html.erb
|
346
364
|
- app/views/groups/show.html.erb
|
347
365
|
- app/views/home/_contacts.html.erb
|
366
|
+
- app/views/home/_groups.html.erb
|
348
367
|
- app/views/home/_location.html.erb
|
349
368
|
- app/views/home/_middle.html.erb
|
350
369
|
- app/views/home/_options.html.erb
|
@@ -373,10 +392,12 @@ files:
|
|
373
392
|
- app/views/users/_contacts.html.erb
|
374
393
|
- app/views/users/_groups.html.erb
|
375
394
|
- app/views/users/_index.html.erb
|
395
|
+
- app/views/users/_location.html.erb
|
376
396
|
- app/views/users/_logo.html.erb
|
377
397
|
- app/views/users/_menu.html.erb
|
378
398
|
- app/views/users/_middle_index.html.erb
|
379
399
|
- app/views/users/_middle_show.html.erb
|
400
|
+
- app/views/users/_options.html.erb
|
380
401
|
- app/views/users/_profile.html.erb
|
381
402
|
- app/views/users/_right_index.html.erb
|
382
403
|
- app/views/users/_right_show.html.erb
|
@@ -415,10 +436,10 @@ files:
|
|
415
436
|
- lib/generators/social_stream/templates/public/images/btn/btn_exit.png
|
416
437
|
- lib/generators/social_stream/templates/public/images/btn/btn_find.png
|
417
438
|
- lib/generators/social_stream/templates/public/images/btn/btn_follow.png
|
418
|
-
- lib/generators/social_stream/templates/public/images/btn/btn_follower.png
|
419
439
|
- lib/generators/social_stream/templates/public/images/btn/btn_foward.png
|
420
440
|
- lib/generators/social_stream/templates/public/images/btn/btn_friend.png
|
421
441
|
- lib/generators/social_stream/templates/public/images/btn/btn_gallery.png
|
442
|
+
- lib/generators/social_stream/templates/public/images/btn/btn_group.png
|
422
443
|
- lib/generators/social_stream/templates/public/images/btn/btn_help.png
|
423
444
|
- lib/generators/social_stream/templates/public/images/btn/btn_home.png
|
424
445
|
- lib/generators/social_stream/templates/public/images/btn/btn_inbox.png
|
@@ -463,7 +484,6 @@ files:
|
|
463
484
|
- lib/generators/social_stream/templates/public/images/btn/subtime.png
|
464
485
|
- lib/generators/social_stream/templates/public/images/btn/tag_cloud.png
|
465
486
|
- lib/generators/social_stream/templates/public/images/btn/time.png
|
466
|
-
- lib/generators/social_stream/templates/public/images/btn/title_background.png
|
467
487
|
- lib/generators/social_stream/templates/public/images/btn/uno.png
|
468
488
|
- lib/generators/social_stream/templates/public/images/btn/viewer.png
|
469
489
|
- lib/generators/social_stream/templates/public/images/frontpage/collaborate.gif
|
@@ -488,9 +508,16 @@ files:
|
|
488
508
|
- lib/generators/social_stream/templates/public/images/frontpage/yellow_sq.png
|
489
509
|
- lib/generators/social_stream/templates/public/images/left.png
|
490
510
|
- lib/generators/social_stream/templates/public/images/logo.png
|
511
|
+
- lib/generators/social_stream/templates/public/images/logos/actor/group.png
|
512
|
+
- lib/generators/social_stream/templates/public/images/logos/actor/user.png
|
491
513
|
- lib/generators/social_stream/templates/public/images/logos/original/group.png
|
492
514
|
- lib/generators/social_stream/templates/public/images/logos/original/user.png
|
515
|
+
- lib/generators/social_stream/templates/public/images/logos/profile/group.png
|
516
|
+
- lib/generators/social_stream/templates/public/images/logos/profile/user.png
|
517
|
+
- lib/generators/social_stream/templates/public/images/logos/tie/group.png
|
518
|
+
- lib/generators/social_stream/templates/public/images/logos/tie/user.png
|
493
519
|
- lib/generators/social_stream/templates/public/images/right.png
|
520
|
+
- lib/generators/social_stream/templates/public/images/title_background.png
|
494
521
|
- lib/generators/social_stream/templates/public/images/ui-bg_flat_0_aaaaaa_40x100.png
|
495
522
|
- lib/generators/social_stream/templates/public/images/ui-bg_flat_75_ffffff_40x100.png
|
496
523
|
- lib/generators/social_stream/templates/public/images/ui-bg_glass_55_fbf9ee_1x400.png
|
@@ -542,6 +569,7 @@ files:
|
|
542
569
|
- lib/generators/social_stream/templates/seeds.yml
|
543
570
|
- lib/paperclip/social_stream.rb
|
544
571
|
- lib/social_stream.rb
|
572
|
+
- lib/social_stream/ability.rb
|
545
573
|
- lib/social_stream/models/activity_object.rb
|
546
574
|
- lib/social_stream/models/actor.rb
|
547
575
|
- lib/social_stream/models/supertype.rb
|
@@ -556,7 +584,6 @@ files:
|
|
556
584
|
- spec/dummy/Rakefile
|
557
585
|
- spec/dummy/app/controllers/application_controller.rb
|
558
586
|
- spec/dummy/app/helpers/application_helper.rb
|
559
|
-
- spec/dummy/app/models/ability.rb
|
560
587
|
- spec/dummy/app/models/post.rb
|
561
588
|
- spec/dummy/app/models/user.rb
|
562
589
|
- spec/dummy/app/views/layouts/application.html.erb
|
@@ -1,23 +0,0 @@
|
|
1
|
-
class Ability
|
2
|
-
include CanCan::Ability
|
3
|
-
|
4
|
-
def initialize(user)
|
5
|
-
can :create, Activity do |a|
|
6
|
-
# All ties authors must the user
|
7
|
-
a.tie.sender_subject == user &&
|
8
|
-
a.tie.permission?(user, 'create', 'resources')
|
9
|
-
end
|
10
|
-
|
11
|
-
can :read, Activity do |a|
|
12
|
-
a.tie.permission?(user, 'read', 'resources')
|
13
|
-
end
|
14
|
-
|
15
|
-
can :update, Activity do |a|
|
16
|
-
a.tie.permission?(user, 'update', 'resources')
|
17
|
-
end
|
18
|
-
|
19
|
-
can :destroy, Activity do |a|
|
20
|
-
a.tie.permission?(user, 'destroy', 'resources')
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|