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.
@@ -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 => receiver.activity_relations(current_subject, :from => :receiver).map(&:id)
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
- $('#toolbar').html("#{ escape_javascript(content) }");
60
- initMenu();
61
- expandSubMenu('#{ options[:option] }');
62
- EOJ
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
- content_for(:toolbar) do
67
- content
68
- end
69
- content_for(:javascript) do
70
- <<-EOJ
71
- expandSubMenu('#{ options[:option] }');
72
- EOJ
73
- end
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
@@ -209,10 +209,17 @@ class Activity < ActiveRecord::Base
209
209
 
210
210
  case action
211
211
  when 'create'
212
- return contact.sender_id == Actor.normalize_id(subject) &&
213
- relation_ids.any? &&
214
- Relation.
215
- allow(subject, action, 'activity', :in => relation_ids).all.size == relation_ids.size
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
@@ -13,6 +13,7 @@
13
13
  class Actor < ActiveRecord::Base
14
14
  @subtypes_name = :subject
15
15
  include SocialStream::Models::Supertype
16
+ include SocialStream::Models::Object
16
17
 
17
18
  delegate :tag_list, :tag_list=, :tagged_with, :tag_counts, :to => :activity_object
18
19
 
@@ -1,3 +1,5 @@
1
1
  class Comment < ActiveRecord::Base
2
+ include SocialStream::Models::Object
3
+
2
4
  validates_presence_of :text
3
5
  end
@@ -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
@@ -1,4 +1,6 @@
1
1
  class Group < ActiveRecord::Base
2
+ include SocialStream::Models::Subject
3
+
2
4
  attr_accessor :_founder
3
5
  attr_accessor :_participants
4
6
 
data/app/models/post.rb CHANGED
@@ -1,3 +1,5 @@
1
1
  class Post < ActiveRecord::Base
2
+ include SocialStream::Models::Object
3
+
2
4
  validates_presence_of :text
3
5
  end
data/app/models/user.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require 'devise/orm/active_record'
2
2
 
3
3
  class User < ActiveRecord::Base
4
+ include SocialStream::Models::Subject
5
+
4
6
  has_many :authentications
5
7
  devise *SocialStream.devise_modules
6
8
 
@@ -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
- <%= image_tag("btn/"+element.to_s+".png") %> <%=t(element.to_s+'.title')%>
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>
@@ -11,6 +11,9 @@
11
11
  <div class="space_center">
12
12
  </div>
13
13
 
14
+ <div id="media_wall">
15
+ </div>
16
+
14
17
  <% if current_subject.respond_to?(:recent_groups) %>
15
18
  <div id="my_groups">
16
19
  <%= render :partial => "groups" %>
@@ -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
- <% receiver.activity_relations(current_subject, :from => :receiver).each do |r| %>
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>
@@ -5,5 +5,9 @@
5
5
 
6
6
  <div id="menu_lateral">
7
7
  <%= render :partial => "toolbar/home_menu_options" %>
8
+ <hr>
9
+ Testing SimpleNavigation<br>Please move along
10
+ <hr>
11
+ <%= yield(:toolbar_menu).empty? ? default_toolbar_menu : yield(:toolbar_menu)%>
8
12
  </div>
9
13
 
@@ -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
@@ -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
@@ -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'
@@ -1,5 +1,5 @@
1
1
  module SocialStream
2
2
  module Base
3
- VERSION = "0.6.0".freeze
3
+ VERSION = "0.6.1".freeze
4
4
  end
5
5
  end
@@ -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
@@ -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
- Contact.create! :sender_id => a.id,
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
 
@@ -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.3')
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
- assert_response :success
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
@@ -19,7 +19,9 @@ describe HomeController do
19
19
 
20
20
  it "should render" do
21
21
  get :index
22
- assert_response :success
22
+
23
+ response.should be_success
24
+ response.body.should =~ /activities_share_btn/
23
25
  end
24
26
 
25
27
  describe "when representing" 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
@@ -0,0 +1,4 @@
1
+ # Configures your navigation
2
+ SimpleNavigation::Configuration.run do |navigation|
3
+
4
+ end
@@ -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|
@@ -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
@@ -0,0 +1,4 @@
1
+ RSpec.configure do |config|
2
+ # == Mock Framework
3
+ config.mock_with :rspec
4
+ 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: 7
4
+ hash: 5
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 0
10
- version: 0.6.0
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-01 00:00:00 +02:00
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: 17
208
+ hash: 31
209
209
  segments:
210
210
  - 0
211
211
  - 2
212
- - 3
213
- version: 0.2.3
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: resque
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: *id016
293
+ version_requirements: *id017
280
294
  - !ruby/object:Gem::Dependency
281
295
  name: rails
282
296
  prerelease: false
283
- requirement: &id017 !ruby/object:Gem::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: *id017
311
+ version_requirements: *id018
298
312
  - !ruby/object:Gem::Dependency
299
313
  name: capybara
300
314
  prerelease: false
301
- requirement: &id018 !ruby/object:Gem::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: *id018
327
+ version_requirements: *id019
314
328
  - !ruby/object:Gem::Dependency
315
329
  name: sqlite3-ruby
316
330
  prerelease: false
317
- requirement: &id019 !ruby/object:Gem::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: *id019
341
+ version_requirements: *id020
328
342
  - !ruby/object:Gem::Dependency
329
343
  name: ruby-debug
330
344
  prerelease: false
331
- requirement: &id020 !ruby/object:Gem::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: *id020
357
+ version_requirements: *id021
344
358
  - !ruby/object:Gem::Dependency
345
359
  name: rspec-rails
346
360
  prerelease: false
347
- requirement: &id021 !ruby/object:Gem::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: *id021
373
+ version_requirements: *id022
360
374
  - !ruby/object:Gem::Dependency
361
375
  name: factory_girl
362
376
  prerelease: false
363
- requirement: &id022 !ruby/object:Gem::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: *id022
389
+ version_requirements: *id023
376
390
  - !ruby/object:Gem::Dependency
377
391
  name: forgery
378
392
  prerelease: false
379
- requirement: &id023 !ruby/object:Gem::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: *id023
405
+ version_requirements: *id024
392
406
  - !ruby/object:Gem::Dependency
393
407
  name: ci_reporter
394
408
  prerelease: false
395
- requirement: &id024 !ruby/object:Gem::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: *id024
421
+ version_requirements: *id025
408
422
  - !ruby/object:Gem::Dependency
409
423
  name: nifty-generators
410
424
  prerelease: false
411
- requirement: &id025 !ruby/object:Gem::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: *id025
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: []