social_stream-base 0.6.0 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- data/app/helpers/activities_helper.rb +1 -1
- data/app/helpers/toolbar_helper.rb +35 -13
- data/app/models/activity.rb +11 -4
- data/app/models/actor.rb +1 -0
- data/app/models/comment.rb +2 -0
- data/app/models/contact.rb +2 -0
- data/app/models/group.rb +2 -0
- data/app/models/post.rb +2 -0
- data/app/models/user.rb +2 -0
- data/app/views/activities/_index.html.erb +3 -3
- data/app/views/activities/_options.html.erb +1 -1
- data/app/views/home/index.html.erb +3 -0
- data/app/views/objects/_new.html.erb +2 -2
- data/app/views/posts/_header.html.erb +1 -0
- data/app/views/subjects/_contacts.html.erb +1 -1
- data/app/views/toolbar/_home_menu.html.erb +4 -0
- data/lib/generators/social_stream/base/install_generator.rb +4 -0
- data/lib/generators/social_stream/base/templates/navigation.rb +0 -0
- data/lib/social_stream-base.rb +2 -0
- data/lib/social_stream/base.rb +0 -6
- data/lib/social_stream/base/version.rb +1 -1
- data/lib/social_stream/models/supertype.rb +0 -9
- data/lib/tasks/db/populate.rake +1 -3
- data/social_stream-base.gemspec +3 -2
- data/spec/controllers/contacts_controller_spec.rb +19 -0
- data/spec/controllers/groups_controller_spec.rb +2 -1
- data/spec/controllers/home_controller_spec.rb +3 -1
- data/spec/controllers/users_controller_spec.rb +9 -0
- data/spec/dummy/config/navigation.rb +4 -0
- data/spec/factories/activity.rb +10 -1
- data/spec/factories/contact.rb +4 -0
- data/spec/models/activity_spec.rb +84 -0
- data/spec/spec_helper.rb +0 -5
- data/spec/support/mock.rb +4 -0
- metadata +45 -27
@@ -24,6 +24,6 @@ module ActivitiesHelper
|
|
24
24
|
return Activity.new unless user_signed_in?
|
25
25
|
|
26
26
|
Activity.new :contact_id => current_subject.contact_to!(receiver).id,
|
27
|
-
:relation_ids =>
|
27
|
+
:relation_ids => current_subject.activity_relations(receiver, :from => :receiver).map(&:id)
|
28
28
|
end
|
29
29
|
end
|
@@ -38,8 +38,11 @@ module ToolbarHelper
|
|
38
38
|
#
|
39
39
|
# <% toolbar :profile => @group, :option => :contacts %>
|
40
40
|
#
|
41
|
-
|
42
41
|
def toolbar(options = {}, &block)
|
42
|
+
old_toolbar(options,&block)
|
43
|
+
end
|
44
|
+
|
45
|
+
def old_toolbar(options = {}, &block)
|
43
46
|
if options[:option] && block_given?
|
44
47
|
menu_options[options[:option]] = capture(&block)
|
45
48
|
end
|
@@ -56,21 +59,21 @@ module ToolbarHelper
|
|
56
59
|
when Mime::JS
|
57
60
|
response = <<-EOJ
|
58
61
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
62
|
+
$('#toolbar').html("#{ escape_javascript(content) }");
|
63
|
+
initMenu();
|
64
|
+
expandSubMenu('#{ options[:option] }');
|
65
|
+
EOJ
|
63
66
|
|
64
67
|
response.html_safe
|
65
68
|
else
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
69
|
+
content_for(:toolbar) do
|
70
|
+
content
|
71
|
+
end
|
72
|
+
content_for(:javascript) do
|
73
|
+
<<-EOJ
|
74
|
+
expandSubMenu('#{ options[:option] }');
|
75
|
+
EOJ
|
76
|
+
end
|
74
77
|
end
|
75
78
|
end
|
76
79
|
|
@@ -80,4 +83,23 @@ module ToolbarHelper
|
|
80
83
|
def menu_options #:nodoc:
|
81
84
|
@menu_options ||= {}
|
82
85
|
end
|
86
|
+
|
87
|
+
def default_toolbar_menu
|
88
|
+
items = [{:key => :notifications,
|
89
|
+
:name => image_tag("btn/btn_notification.png", :class => "menu_icon")+t('notification.other')+' ('+ current_subject.mailbox.notifications.not_trashed.unread.count.to_s+')',
|
90
|
+
:url => notifications_path}]
|
91
|
+
|
92
|
+
items << {:key => :dummy1, :name => "Dummy 1", :url => "#", :items => [
|
93
|
+
{:key => :dummy1_1, :name => "Dummy 1.1", :url => "#"},
|
94
|
+
{:key => :dummy1_2, :name => "Dummy 1.2", :url => "#"}
|
95
|
+
]}
|
96
|
+
|
97
|
+
return render_items items
|
98
|
+
end
|
99
|
+
|
100
|
+
def render_items(items)
|
101
|
+
menu = render_navigation :items => items
|
102
|
+
menu = menu.gsub(/\<ul\>/,'<ul class="menu">')
|
103
|
+
return raw menu
|
104
|
+
end
|
83
105
|
end
|
data/app/models/activity.rb
CHANGED
@@ -209,10 +209,17 @@ class Activity < ActiveRecord::Base
|
|
209
209
|
|
210
210
|
case action
|
211
211
|
when 'create'
|
212
|
-
return contact.sender_id
|
213
|
-
|
214
|
-
|
215
|
-
|
212
|
+
return false if contact.sender_id != Actor.normalize_id(subject)
|
213
|
+
|
214
|
+
rels = Relation.normalize(relation_ids)
|
215
|
+
|
216
|
+
foreign_rels = rels.select{ |r| r.actor_id != contact.sender_id }
|
217
|
+
|
218
|
+
# Only posting to own relations
|
219
|
+
return true if foreign_rels.blank?
|
220
|
+
|
221
|
+
return Relation.
|
222
|
+
allow(subject, action, 'activity', :in => foreign_rels).all.size == foreign_rels.size
|
216
223
|
when 'read'
|
217
224
|
return true if [contact.sender_id, contact.receiver_id].include?(Actor.normalize_id(subject)) || relations.select{ |r| r.is_a?(Relation::Public) }.any?
|
218
225
|
when 'update'
|
data/app/models/actor.rb
CHANGED
data/app/models/comment.rb
CHANGED
data/app/models/contact.rb
CHANGED
@@ -51,6 +51,8 @@ class Contact < ActiveRecord::Base
|
|
51
51
|
scope :active, where(arel_table[:ties_count].gt(0))
|
52
52
|
|
53
53
|
validates_presence_of :sender_id, :receiver_id
|
54
|
+
validates_uniqueness_of :sender_id, :scope => :receiver_id
|
55
|
+
validates_uniqueness_of :receiver_id, :scope => :sender_id
|
54
56
|
|
55
57
|
after_create :set_inverse
|
56
58
|
after_create :send_message
|
data/app/models/group.rb
CHANGED
data/app/models/post.rb
CHANGED
data/app/models/user.rb
CHANGED
@@ -11,8 +11,8 @@
|
|
11
11
|
<div id="wrapper_activities_header">
|
12
12
|
<div id="activities_title" class="content_size">
|
13
13
|
<% SocialStream.activity_forms.each do |element| %>
|
14
|
-
<div id="header_<%= element %>" class="activities_title_header">
|
15
|
-
|
14
|
+
<div id="header_<%= element %>" class="activities_title_header">
|
15
|
+
<%= render :partial => element.to_s.pluralize+'/header' %>
|
16
16
|
</div>
|
17
17
|
<% end %>
|
18
18
|
</div>
|
@@ -23,4 +23,4 @@
|
|
23
23
|
<%= render activities %>
|
24
24
|
<%= paginate activities %>
|
25
25
|
</div>
|
26
|
-
</div>
|
26
|
+
</div>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<div class="activity_options">
|
2
2
|
<ul class="activity_options" >
|
3
3
|
<li><div class="post_time_ago"><%= t('time.ago', :time => time_ago_in_words(activity.created_at)) %></div></li>
|
4
|
-
<% if activity.is_root? && current_subject.activity_relations?(activity.receiver, :in => activity.relations) %>
|
4
|
+
<% if activity.is_root? && user_signed_in? && current_subject.activity_relations?(activity.receiver, :in => activity.relations) %>
|
5
5
|
<li><div class="verb_comment"> · <%= link_to t('activity.to_comment'), "#", :class => "to_comment" %> </div></li>
|
6
6
|
<% end %>
|
7
7
|
<li><div class="verb_like" id="like_<%= dom_id(activity) %>"> · <%= link_like(activity)%></div></li>
|
@@ -7,8 +7,8 @@
|
|
7
7
|
<%= render :partial => object.class.to_s.tableize+'/fields' , :locals => {:f => f} %>
|
8
8
|
|
9
9
|
<% if current_subject != receiver %>
|
10
|
-
<%
|
10
|
+
<% current_subject.activity_relations(receiver, :from => :receiver).each do |r| %>
|
11
11
|
<%= f.hidden_field "_relation_ids][", :value => r.id %>
|
12
12
|
<% end %>
|
13
13
|
<% end %>
|
14
|
-
<% end %>
|
14
|
+
<% end %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= image_tag("btn/post.png") %> <%=t('post.title')%>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<div class ="content">
|
11
11
|
<div class="contact space_center">
|
12
12
|
<% cs.each do |contact| %>
|
13
|
-
<%= link_to(image_tag(contact.logo.url, :alt => contact.name , :size => "28x28"), contact) %>
|
13
|
+
<%= link_to(image_tag(contact.logo.url(:contact), :alt => contact.name , :size => "28x28"), contact) %>
|
14
14
|
<% end %>
|
15
15
|
</div>
|
16
16
|
</div>
|
@@ -40,6 +40,10 @@ class SocialStream::Base::InstallGenerator < Rails::Generators::Base #:nodoc:
|
|
40
40
|
'app/views/layouts/application.html.erb'
|
41
41
|
end
|
42
42
|
|
43
|
+
def create_navigation_config
|
44
|
+
copy_file 'navigation.rb', 'config/navigation.rb'
|
45
|
+
end
|
46
|
+
|
43
47
|
def create_migration_file
|
44
48
|
require 'rake'
|
45
49
|
Rails.application.load_tasks
|
File without changes
|
data/lib/social_stream-base.rb
CHANGED
@@ -31,6 +31,8 @@ require 'acts_as_taggable_on/social_stream'
|
|
31
31
|
require 'formtastic'
|
32
32
|
#Background tasks
|
33
33
|
require 'resque/server'
|
34
|
+
#Simple Navigation for menu
|
35
|
+
require 'simple-navigation'
|
34
36
|
|
35
37
|
# Provides your Rails application with social network and activity stream support
|
36
38
|
module SocialStream
|
data/lib/social_stream/base.rb
CHANGED
@@ -8,12 +8,6 @@ module SocialStream
|
|
8
8
|
config.app_generators.messages :mailboxer
|
9
9
|
config.app_generators.taggings :acts_as_taggable_on
|
10
10
|
|
11
|
-
config.to_prepare do
|
12
|
-
%w( actor activity_object ).each do |supertype|
|
13
|
-
supertype.classify.constantize.load_subtype_features
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
11
|
initializer "social_stream-base.inflections" do
|
18
12
|
ActiveSupport::Inflector.inflections do |inflect|
|
19
13
|
inflect.singular /^([Tt]ie)s$/, '\1'
|
@@ -18,15 +18,6 @@ module SocialStream #:nodoc:
|
|
18
18
|
def subtypes
|
19
19
|
SocialStream.__send__ @subtypes_name.to_s.tableize # SocialStream.subjects # in Actor
|
20
20
|
end
|
21
|
-
|
22
|
-
def load_subtype_features
|
23
|
-
features = "SocialStream::Models::#{ @subtypes_name.to_s.classify }".constantize
|
24
|
-
|
25
|
-
subtypes.each do |s|
|
26
|
-
s = s.to_s.classify.constantize
|
27
|
-
s.__send__(:include, features) unless s.ancestors.include?(features)
|
28
|
-
end
|
29
|
-
end
|
30
21
|
end
|
31
22
|
|
32
23
|
module InstanceMethods
|
data/lib/tasks/db/populate.rake
CHANGED
@@ -101,9 +101,7 @@ namespace :db do
|
|
101
101
|
|
102
102
|
Forgery::Basic.number(:at_most => actors.size).times do
|
103
103
|
actor = actors.delete_at((rand * actors.size).to_i)
|
104
|
-
|
105
|
-
:receiver_id => actor.id,
|
106
|
-
:relation_ids => Array(relations.random.id)
|
104
|
+
a.contact_to!(actor).relation_ids = Array(relations.random.id)
|
107
105
|
end
|
108
106
|
end
|
109
107
|
|
data/social_stream-base.gemspec
CHANGED
@@ -35,17 +35,18 @@ Gem::Specification.new do |s|
|
|
35
35
|
# OAuth provider
|
36
36
|
s.add_runtime_dependency('oauth-plugin','~> 0.4.0.pre1')
|
37
37
|
# Messages
|
38
|
-
s.add_runtime_dependency('mailboxer','~> 0.2.
|
38
|
+
s.add_runtime_dependency('mailboxer','~> 0.2.4')
|
39
39
|
# Avatar manipulation
|
40
40
|
s.add_runtime_dependency('rmagick','~> 2.13.1')
|
41
41
|
# Tagging
|
42
42
|
s.add_runtime_dependency('acts-as-taggable-on','~> 2.0.6')
|
43
43
|
# HTML Forms
|
44
44
|
s.add_runtime_dependency('formtastic','~> 1.2.3')
|
45
|
+
# Simple navigation for menu
|
46
|
+
s.add_runtime_dependency('simple-navigation')
|
45
47
|
#Gem dependencies
|
46
48
|
s.add_runtime_dependency('resque','~> 1.17.1')
|
47
49
|
|
48
|
-
# Freeze Rails to 3.0.7 until Mailboxer bug is fixed
|
49
50
|
s.add_runtime_dependency('rails', '3.1.0.rc4')
|
50
51
|
|
51
52
|
# Development Gem dependencies
|
@@ -37,4 +37,23 @@ describe ContactsController do
|
|
37
37
|
first.relation.
|
38
38
|
should == @user.relations.last
|
39
39
|
end
|
40
|
+
|
41
|
+
it "should create contact" do
|
42
|
+
sign_in @user
|
43
|
+
|
44
|
+
group = Factory(:group)
|
45
|
+
contact = @user.contact_to!(group)
|
46
|
+
|
47
|
+
|
48
|
+
put :update, :id => contact.id,
|
49
|
+
:contact => { :relation_ids => [ "gotcha", @user.relations.last.id ],
|
50
|
+
:message => "Testing" }
|
51
|
+
|
52
|
+
response.should redirect_to(contact.receiver_subject)
|
53
|
+
contact.reload.
|
54
|
+
ties.
|
55
|
+
first.relation.
|
56
|
+
should == @user.relations.last
|
57
|
+
end
|
58
|
+
|
40
59
|
end
|
@@ -63,7 +63,8 @@ describe GroupsController do
|
|
63
63
|
@group = Factory(:member, :contact => Factory(:group_contact, :receiver => @user.actor)).sender_subject
|
64
64
|
get :show, :id => @group.to_param
|
65
65
|
|
66
|
-
|
66
|
+
response.should be_success
|
67
|
+
response.body.should =~ /activities_share_btn/
|
67
68
|
end
|
68
69
|
|
69
70
|
it "should render other group" do
|
@@ -16,6 +16,15 @@ describe UsersController do
|
|
16
16
|
assert_response :success
|
17
17
|
end
|
18
18
|
|
19
|
+
it "should render show with public activity" do
|
20
|
+
activity = Factory(:public_activity)
|
21
|
+
|
22
|
+
get :show, :id => activity.receiver.to_param
|
23
|
+
|
24
|
+
response.should be_success
|
25
|
+
response.body.should =~ /activity_#{ activity.id }/
|
26
|
+
end
|
27
|
+
|
19
28
|
it "should not render edit" do
|
20
29
|
begin
|
21
30
|
get :edit, :id => Factory(:user).to_param
|
data/spec/factories/activity.rb
CHANGED
@@ -1,7 +1,16 @@
|
|
1
1
|
Factory.define :activity do |a|
|
2
2
|
a.contact { Factory(:friend).contact }
|
3
3
|
a.activity_verb { ActivityVerb["post"] }
|
4
|
-
a.relation_ids { |b| Array(b.sender.relation_custom('friend')) }
|
4
|
+
a.relation_ids { |b| Array(b.sender.relation_custom('friend').id) }
|
5
|
+
end
|
6
|
+
|
7
|
+
Factory.define :self_activity, :parent => :activity do |a|
|
8
|
+
a.contact { Factory(:self_contact) }
|
9
|
+
a.relation_ids { |b| Array(b.sender.relation_custom('friend').id) }
|
10
|
+
end
|
11
|
+
|
12
|
+
Factory.define :public_activity, :parent => :activity do |a|
|
13
|
+
a.relation_ids { |b| Array(b.sender.relation_public.id) }
|
5
14
|
end
|
6
15
|
|
7
16
|
Factory.define :like_activity, :parent => :activity do |a|
|
data/spec/factories/contact.rb
CHANGED
@@ -3,6 +3,10 @@ Factory.define :contact do |c|
|
|
3
3
|
c.receiver { |r| Factory(:user).actor }
|
4
4
|
end
|
5
5
|
|
6
|
+
Factory.define :self_contact, :parent => :contact do |c|
|
7
|
+
c.receiver { |d| d.sender }
|
8
|
+
end
|
9
|
+
|
6
10
|
Factory.define :group_contact, :parent => :contact do |g|
|
7
11
|
g.sender { |s| Factory(:group).actor }
|
8
12
|
end
|
@@ -104,6 +104,13 @@ describe Activity do
|
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
107
|
+
describe "friend's profile" do
|
108
|
+
it "should not include activity" do
|
109
|
+
friend = Factory(:friend, :contact => Factory(:contact, :sender => @activity.sender)).receiver
|
110
|
+
friend.wall(:profile, :for => @activity.sender).should_not include(@activity)
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
107
114
|
describe "sender profile" do
|
108
115
|
context "for sender" do
|
109
116
|
it "should include activity" do
|
@@ -121,6 +128,83 @@ describe Activity do
|
|
121
128
|
end
|
122
129
|
end
|
123
130
|
end
|
131
|
+
|
132
|
+
context "with a self friend activity" do
|
133
|
+
before do
|
134
|
+
@activity = Factory(:self_activity)
|
135
|
+
end
|
136
|
+
|
137
|
+
describe "friend's profile" do
|
138
|
+
it "should not include activity" do
|
139
|
+
friend = Factory(:friend, :contact => Factory(:contact, :sender => @activity.sender)).receiver
|
140
|
+
friend.wall(:profile, :for => @activity.sender).should_not include(@activity)
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
context "with a public activity" do
|
146
|
+
before do
|
147
|
+
@activity = Factory(:public_activity)
|
148
|
+
end
|
149
|
+
|
150
|
+
describe "sender home" do
|
151
|
+
it "should include activity" do
|
152
|
+
@activity.sender.wall(:home).should include(@activity)
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
describe "receiver home" do
|
157
|
+
it "should include activity" do
|
158
|
+
@activity.receiver.wall(:home).should include(@activity)
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
describe "alien home" do
|
163
|
+
it "should not include activity" do
|
164
|
+
Factory(:user).wall(:home).should_not include(@activity)
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
describe "sender profile" do
|
169
|
+
context "for sender" do
|
170
|
+
it "should include activity" do
|
171
|
+
@activity.sender.wall(:profile, :for => @activity.sender).should include(@activity)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
context "for receiver" do
|
176
|
+
it "should include activity" do
|
177
|
+
@activity.sender.wall(:profile, :for => @activity.receiver).should include(@activity)
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
context "for Anonymous" do
|
182
|
+
it "should include activity" do
|
183
|
+
@activity.sender.wall(:profile, :for => nil).should include(@activity)
|
184
|
+
end
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
describe "receiver profile" do
|
189
|
+
context "for sender" do
|
190
|
+
it "should include activity" do
|
191
|
+
@activity.receiver.wall(:profile, :for => @activity.sender).should include(@activity)
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
195
|
+
context "for receiver" do
|
196
|
+
it "should include activity" do
|
197
|
+
@activity.receiver.wall(:profile, :for => @activity.receiver).should include(@activity)
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
context "for Anonymous" do
|
202
|
+
it "should include activity" do
|
203
|
+
@activity.receiver.wall(:profile, :for => nil).should include(@activity)
|
204
|
+
end
|
205
|
+
end
|
206
|
+
end
|
207
|
+
end
|
124
208
|
end
|
125
209
|
|
126
210
|
context "user" do
|
data/spec/spec_helper.rb
CHANGED
@@ -27,8 +27,3 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
|
27
27
|
# Load Factories
|
28
28
|
require 'factory_girl'
|
29
29
|
Dir["#{File.dirname(__FILE__)}/factories/*.rb"].each {|f| require f}
|
30
|
-
|
31
|
-
RSpec.configure do |config|
|
32
|
-
# == Mock Framework
|
33
|
-
config.mock_with :rspec
|
34
|
-
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: social_stream-base
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 0.6.
|
9
|
+
- 1
|
10
|
+
version: 0.6.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- GING - DIT - UPM
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-07-
|
19
|
+
date: 2011-07-04 00:00:00 +02:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -205,12 +205,12 @@ dependencies:
|
|
205
205
|
requirements:
|
206
206
|
- - ~>
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
hash:
|
208
|
+
hash: 31
|
209
209
|
segments:
|
210
210
|
- 0
|
211
211
|
- 2
|
212
|
-
-
|
213
|
-
version: 0.2.
|
212
|
+
- 4
|
213
|
+
version: 0.2.4
|
214
214
|
type: :runtime
|
215
215
|
version_requirements: *id012
|
216
216
|
- !ruby/object:Gem::Dependency
|
@@ -262,9 +262,23 @@ dependencies:
|
|
262
262
|
type: :runtime
|
263
263
|
version_requirements: *id015
|
264
264
|
- !ruby/object:Gem::Dependency
|
265
|
-
name:
|
265
|
+
name: simple-navigation
|
266
266
|
prerelease: false
|
267
267
|
requirement: &id016 !ruby/object:Gem::Requirement
|
268
|
+
none: false
|
269
|
+
requirements:
|
270
|
+
- - ">="
|
271
|
+
- !ruby/object:Gem::Version
|
272
|
+
hash: 3
|
273
|
+
segments:
|
274
|
+
- 0
|
275
|
+
version: "0"
|
276
|
+
type: :runtime
|
277
|
+
version_requirements: *id016
|
278
|
+
- !ruby/object:Gem::Dependency
|
279
|
+
name: resque
|
280
|
+
prerelease: false
|
281
|
+
requirement: &id017 !ruby/object:Gem::Requirement
|
268
282
|
none: false
|
269
283
|
requirements:
|
270
284
|
- - ~>
|
@@ -276,11 +290,11 @@ dependencies:
|
|
276
290
|
- 1
|
277
291
|
version: 1.17.1
|
278
292
|
type: :runtime
|
279
|
-
version_requirements: *
|
293
|
+
version_requirements: *id017
|
280
294
|
- !ruby/object:Gem::Dependency
|
281
295
|
name: rails
|
282
296
|
prerelease: false
|
283
|
-
requirement: &
|
297
|
+
requirement: &id018 !ruby/object:Gem::Requirement
|
284
298
|
none: false
|
285
299
|
requirements:
|
286
300
|
- - "="
|
@@ -294,11 +308,11 @@ dependencies:
|
|
294
308
|
- 4
|
295
309
|
version: 3.1.0.rc4
|
296
310
|
type: :runtime
|
297
|
-
version_requirements: *
|
311
|
+
version_requirements: *id018
|
298
312
|
- !ruby/object:Gem::Dependency
|
299
313
|
name: capybara
|
300
314
|
prerelease: false
|
301
|
-
requirement: &
|
315
|
+
requirement: &id019 !ruby/object:Gem::Requirement
|
302
316
|
none: false
|
303
317
|
requirements:
|
304
318
|
- - ~>
|
@@ -310,11 +324,11 @@ dependencies:
|
|
310
324
|
- 9
|
311
325
|
version: 0.3.9
|
312
326
|
type: :development
|
313
|
-
version_requirements: *
|
327
|
+
version_requirements: *id019
|
314
328
|
- !ruby/object:Gem::Dependency
|
315
329
|
name: sqlite3-ruby
|
316
330
|
prerelease: false
|
317
|
-
requirement: &
|
331
|
+
requirement: &id020 !ruby/object:Gem::Requirement
|
318
332
|
none: false
|
319
333
|
requirements:
|
320
334
|
- - ">="
|
@@ -324,11 +338,11 @@ dependencies:
|
|
324
338
|
- 0
|
325
339
|
version: "0"
|
326
340
|
type: :development
|
327
|
-
version_requirements: *
|
341
|
+
version_requirements: *id020
|
328
342
|
- !ruby/object:Gem::Dependency
|
329
343
|
name: ruby-debug
|
330
344
|
prerelease: false
|
331
|
-
requirement: &
|
345
|
+
requirement: &id021 !ruby/object:Gem::Requirement
|
332
346
|
none: false
|
333
347
|
requirements:
|
334
348
|
- - ~>
|
@@ -340,11 +354,11 @@ dependencies:
|
|
340
354
|
- 3
|
341
355
|
version: 0.10.3
|
342
356
|
type: :development
|
343
|
-
version_requirements: *
|
357
|
+
version_requirements: *id021
|
344
358
|
- !ruby/object:Gem::Dependency
|
345
359
|
name: rspec-rails
|
346
360
|
prerelease: false
|
347
|
-
requirement: &
|
361
|
+
requirement: &id022 !ruby/object:Gem::Requirement
|
348
362
|
none: false
|
349
363
|
requirements:
|
350
364
|
- - ~>
|
@@ -356,11 +370,11 @@ dependencies:
|
|
356
370
|
- 1
|
357
371
|
version: 2.6.1
|
358
372
|
type: :development
|
359
|
-
version_requirements: *
|
373
|
+
version_requirements: *id022
|
360
374
|
- !ruby/object:Gem::Dependency
|
361
375
|
name: factory_girl
|
362
376
|
prerelease: false
|
363
|
-
requirement: &
|
377
|
+
requirement: &id023 !ruby/object:Gem::Requirement
|
364
378
|
none: false
|
365
379
|
requirements:
|
366
380
|
- - ~>
|
@@ -372,11 +386,11 @@ dependencies:
|
|
372
386
|
- 2
|
373
387
|
version: 1.3.2
|
374
388
|
type: :development
|
375
|
-
version_requirements: *
|
389
|
+
version_requirements: *id023
|
376
390
|
- !ruby/object:Gem::Dependency
|
377
391
|
name: forgery
|
378
392
|
prerelease: false
|
379
|
-
requirement: &
|
393
|
+
requirement: &id024 !ruby/object:Gem::Requirement
|
380
394
|
none: false
|
381
395
|
requirements:
|
382
396
|
- - ~>
|
@@ -388,11 +402,11 @@ dependencies:
|
|
388
402
|
- 6
|
389
403
|
version: 0.3.6
|
390
404
|
type: :development
|
391
|
-
version_requirements: *
|
405
|
+
version_requirements: *id024
|
392
406
|
- !ruby/object:Gem::Dependency
|
393
407
|
name: ci_reporter
|
394
408
|
prerelease: false
|
395
|
-
requirement: &
|
409
|
+
requirement: &id025 !ruby/object:Gem::Requirement
|
396
410
|
none: false
|
397
411
|
requirements:
|
398
412
|
- - ~>
|
@@ -404,11 +418,11 @@ dependencies:
|
|
404
418
|
- 4
|
405
419
|
version: 1.6.4
|
406
420
|
type: :development
|
407
|
-
version_requirements: *
|
421
|
+
version_requirements: *id025
|
408
422
|
- !ruby/object:Gem::Dependency
|
409
423
|
name: nifty-generators
|
410
424
|
prerelease: false
|
411
|
-
requirement: &
|
425
|
+
requirement: &id026 !ruby/object:Gem::Requirement
|
412
426
|
none: false
|
413
427
|
requirements:
|
414
428
|
- - ~>
|
@@ -420,7 +434,7 @@ dependencies:
|
|
420
434
|
- 5
|
421
435
|
version: 0.4.5
|
422
436
|
type: :development
|
423
|
-
version_requirements: *
|
437
|
+
version_requirements: *id026
|
424
438
|
description: |-
|
425
439
|
Social Stream is a Ruby on Rails engine providing your application with social networking features and activity streams.
|
426
440
|
|
@@ -1016,6 +1030,7 @@ files:
|
|
1016
1030
|
- app/views/permissions/_index.html.erb
|
1017
1031
|
- app/views/permissions/index.js.erb
|
1018
1032
|
- app/views/posts/_fields.erb
|
1033
|
+
- app/views/posts/_header.html.erb
|
1019
1034
|
- app/views/posts/_new.html.erb
|
1020
1035
|
- app/views/posts/_post.html.erb
|
1021
1036
|
- app/views/posts/create.js.erb
|
@@ -1076,6 +1091,7 @@ files:
|
|
1076
1091
|
- lib/acts_as_taggable_on/social_stream.rb
|
1077
1092
|
- lib/generators/social_stream/base/install_generator.rb
|
1078
1093
|
- lib/generators/social_stream/base/templates/initializer.rb
|
1094
|
+
- lib/generators/social_stream/base/templates/navigation.rb
|
1079
1095
|
- lib/generators/social_stream/base/templates/relations.yml
|
1080
1096
|
- lib/paperclip/social_stream.rb
|
1081
1097
|
- lib/social_stream-base.rb
|
@@ -1130,6 +1146,7 @@ files:
|
|
1130
1146
|
- spec/dummy/config/initializers/social_stream.rb
|
1131
1147
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
1132
1148
|
- spec/dummy/config/locales/en.yml
|
1149
|
+
- spec/dummy/config/navigation.rb
|
1133
1150
|
- spec/dummy/config/relations.yml
|
1134
1151
|
- spec/dummy/config/routes.rb
|
1135
1152
|
- spec/dummy/db/migrate/.gitkeep
|
@@ -1168,6 +1185,7 @@ files:
|
|
1168
1185
|
- spec/support/db.rb
|
1169
1186
|
- spec/support/devise.rb
|
1170
1187
|
- spec/support/migrations.rb
|
1188
|
+
- spec/support/mock.rb
|
1171
1189
|
has_rdoc: true
|
1172
1190
|
homepage: http://social-stream.dit.upm.es/
|
1173
1191
|
licenses: []
|