social_stream 0.15.6 → 0.15.7

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -55,6 +55,7 @@ Current Social Stream distribution includes:
55
55
  * {Social Stream Documents}[https://github.com/ging/social_stream/tree/master/documents], support for
56
56
  activities on files
57
57
  * {Social Stream Events}[https://github.com/ging/social_stream/tree/master/events], videoconference events with an agenda and several sessions
58
+ * {Social Stream Linkser}[https://github.com/ging/social_stream/tree/master/linkser], advanced management of links to other webpages
58
59
 
59
60
  = Documentation
60
61
 
data/base/Gemfile CHANGED
@@ -4,6 +4,7 @@ source "http://rubygems.org"
4
4
  # use a local code of mailboxer or avatar_for_rails gems
5
5
  #
6
6
  # gem 'mailboxer', :path => '../mailboxer'
7
+ # gem 'social_cheesecake', :path => '../../SocialCheesecake/social_cheesecake'
7
8
  # gem 'avatars_for_rails', :path => '../avatars_for_rails'
8
9
 
9
10
  gemspec
@@ -0,0 +1,6 @@
1
+ window.requestAnimFrame = (function(callback) {
2
+ return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame ||
3
+ function(callback) {
4
+ window.setTimeout(callback, 1000 / 60);
5
+ };
6
+ })();
@@ -6,5 +6,6 @@
6
6
  //= require jquery.screw
7
7
  //
8
8
  //= require avatars_for_rails
9
+ //= require social_cheesecake
9
10
  //
10
11
  //= require_tree .
@@ -0,0 +1,55 @@
1
+ @import "colors";
2
+
3
+ #cheesecake {
4
+ position: relative;
5
+ padding: 20px;
6
+ }
7
+ #contacts_cheesecake {
8
+ width: 440px;
9
+ height: 440px;
10
+ padding: 0px;
11
+ float: left;
12
+ }
13
+ #contacts_filter {
14
+ width: 290px;
15
+ height: 64px;
16
+ position: relative;
17
+ float: left;
18
+ padding: 5px;
19
+ }
20
+
21
+ #cheesecake #contacts_filter #contacts_filter_input {
22
+ padding: 0 3px 0 22px;
23
+ background: url('btn/search_icon.png') 5px 50% no-repeat white;
24
+ font-size: 11px;
25
+ color: $main-color;
26
+ border: solid 1px $input-border-color;
27
+ height: 25px;
28
+ width: 200px;
29
+ margin-left: 26px;
30
+ margin-top: 18px;
31
+ }
32
+
33
+ #contacts_grid {
34
+ width: 300px;
35
+ height: 370px;
36
+ overflow: hidden;
37
+ position: relative;
38
+ float: left;
39
+ }
40
+ #contacts_grid .actor {
41
+ width: 64px;
42
+ height: 64px;
43
+ float: left;
44
+ margin: 5px;
45
+ }
46
+ #contacts_grid .actor.focused {
47
+ border: 2px solid #00F;
48
+ background-color: #006;
49
+ margin: 3px;
50
+ }
51
+ #contacts_grid .actor img {
52
+ width: 64px;
53
+ height: 64px;
54
+ }
55
+
@@ -0,0 +1,9 @@
1
+ class CheesecakeController < ApplicationController
2
+
3
+ before_filter :authenticate_user!
4
+
5
+ def index
6
+ @actors = current_subject.contact_actors(:direction => :sent)
7
+ end
8
+
9
+ end
@@ -499,6 +499,16 @@ class Actor < ActiveRecord::Base
499
499
  slug
500
500
  end
501
501
 
502
+ # JSON compatible with SocialCheesecake
503
+ def cheesecake_json
504
+ {
505
+ :sectors =>
506
+ relation_customs.includes(:ties => :contact).map { |r|
507
+ r.to_cheesecake_hash
508
+ }
509
+ }.to_json
510
+ end
511
+
502
512
  private
503
513
 
504
514
  # After create callback
@@ -96,4 +96,17 @@ class Relation::Custom < Relation
96
96
  def stronger_or_equal
97
97
  path
98
98
  end
99
+
100
+ # JSON compatible with SocialCheesecake
101
+ def to_cheesecake_hash(options = {})
102
+ { :name => name }.tap do |hash|
103
+ if options[:subsector]
104
+ hash[:actors] = ties.map{ |t| [t.contact.receiver_id] }.uniq
105
+ else
106
+ hash[:subsectors] = ( weaker.present? ?
107
+ weaker.map{ |w| w.to_cheesecake_hash(:subsector => true) } :
108
+ Array.wrap(to_cheesecake_hash(:subsector => true)) )
109
+ end
110
+ end
111
+ end
99
112
  end
@@ -0,0 +1,4 @@
1
+ <%= div_for actor do %>
2
+ <%= image_tag(actor.logo.url , :size => "64x64", :alt => actor.name ) %>
3
+ <% end %>
4
+
@@ -0,0 +1,38 @@
1
+ <div id="cheesecake">
2
+ <div id="contacts_cheesecake"></div>
3
+ <div id="contacts_filter">
4
+ <%= text_field_tag :filter_query, nil,:autocomplete => :off, :id => :contacts_filter_input %>
5
+ </div>
6
+ <div id="contacts_grid">
7
+
8
+ <% @actors.each do |actor|%>
9
+ <%= render :partial => "actors/actor_cheesecake", :locals => {:actor => actor} %>
10
+ <% end %>
11
+ </div>
12
+ <br class="clearfloat">
13
+ <%= javascript_tag do %>
14
+ $(function(){
15
+ $("#center_body").css("width","782px");
16
+ $("#center_body").css("max-width","782px");
17
+ $("#content").css("width","782px");
18
+ $("#contacts_filter_input").Watermark("<%= escape_javascript(I18n.t('search.name')) %>");
19
+ });
20
+ window.onload = function() {
21
+ var cheesecakeData = {
22
+ container: {
23
+ id: "contacts_cheesecake",
24
+ width: 440,
25
+ height: 440
26
+ },
27
+ grid: {
28
+ id: "contacts_grid",
29
+ divIdPrefix: "actor_"
30
+ },
31
+ rMax : 200,
32
+ center: {x : 220, y : 220}
33
+ };
34
+ cheesecakeData.sectors = <%= raw(current_subject.cheesecake_json) %>.sectors;
35
+ var cheese = new socialCheesecake.Cheesecake(cheesecakeData);
36
+ }
37
+ <% end %>
38
+ </div>
@@ -0,0 +1,10 @@
1
+ <% content_for :title do%>
2
+ <%= t('contact.other')%>
3
+ <%end%>
4
+
5
+ <% toolbar :option => :contacts %>
6
+
7
+ <% location link_to(t("contact.other"),contacts_path) %>
8
+ <%= render :partial => "index"%>
9
+
10
+ <div class="space_center"></div>
@@ -84,6 +84,8 @@ Rails.application.routes.draw do
84
84
 
85
85
  match 'search' => 'search#index', :as => :search
86
86
 
87
+ match 'cheesecake' => 'cheesecake#index', :as => :cheesecake
88
+
87
89
  match 'ties' => 'ties#index', :as => :ties
88
90
 
89
91
 
@@ -1,5 +1,5 @@
1
1
  module SocialStream
2
2
  module Base
3
- VERSION = "0.10.9".freeze
3
+ VERSION = "0.10.10".freeze
4
4
  end
5
5
  end
@@ -12,10 +12,18 @@ namespace :db do
12
12
 
13
13
  LOGOS_PATH = File.join(Rails.root, 'lib', 'logos')
14
14
  USERS = (ENV["USERS"] || 9).to_i
15
- GROUPS = (ENV["GROUPS"] || 10).to_i
15
+ GROUPS = (ENV["GROUPS"] || 10).to_i
16
+ CHEESECAKE_TESTING = (ENV["CHEESECAKE_TESTING"].present? || false)
17
+ if CHEESECAKE_TESTING
18
+ puts "Cheesecake Testing mode: ON"
19
+ end
16
20
  if ENV["HARDCORE"].present?
17
21
  USERS = 999
18
22
  GROUPS = 1000
23
+ puts "Hardcore mode: ON (May the Force be with you brave Padawan)"
24
+ if CHEESECAKE_TESTING
25
+ puts "WARNING: Hardcore and Cheesecake Modes activated. This situation is really slow. Please, avoid it."
26
+ end
19
27
  end
20
28
  if USERS < 9
21
29
  USERS = 9
@@ -110,105 +118,115 @@ namespace :db do
110
118
  # = Ties
111
119
  available_actors.each do |a|
112
120
  actors = available_actors.dup - Array(a)
113
- relations = a.relations
121
+ relations = a.relation_customs + Array.wrap(a.relation_reject)
114
122
  break if actors.size==0
115
123
  Forgery::Basic.number(:at_most => actors.size).times do
116
124
  actor = actors.delete_at((rand * actors.size).to_i)
117
125
  a.contact_to!(actor).relation_ids = Array(Forgery::Extensions::Array.new(relations).random.id)
118
126
  end
127
+ if CHEESECAKE_TESTING
128
+ actor = Actor.first
129
+ puts a.name + " connecting with " + actor.name
130
+ a.contact_to!(actor).relation_ids = Array(Forgery::Extensions::Array.new(relations).random.id)
131
+ end
119
132
  end
120
133
 
121
134
  ties_end = Time.now
122
135
  puts ' -> ' + (ties_end - ties_start).round(4).to_s + 's'
123
136
 
124
137
  # = Posts
125
-
126
138
  puts 'Post population'
127
- posts_start = Time.now
128
-
129
- SocialStream::Populate.power_law(Tie.all) do |t|
130
- updated = Time.at(rand(Time.now.to_i))
131
-
132
- author = t.sender
133
- owner = t.receiver
134
- user_author = ( t.sender.subject_type == "User" ? t.sender : t.sender.user_author )
135
-
136
- p = Post.create :text =>
137
- "This post should be for #{ t.relation.name } of #{ t.sender.name }.\n#{ Forgery::LoremIpsum.paragraph(:random => true) }",
138
- :created_at => Time.at(rand(updated.to_i)),
139
- :updated_at => updated,
140
- :author_id => author.id,
141
- :owner_id => owner.id,
142
- :user_author_id => user_author.id,
143
- :_relation_ids => Array(t.relation_id)
144
-
145
- p.post_activity.update_attributes(:created_at => p.created_at,
146
- :updated_at => p.updated_at)
139
+ unless CHEESECAKE_TESTING
140
+ posts_start = Time.now
141
+
142
+ SocialStream::Populate.power_law(Tie.all) do |t|
143
+ updated = Time.at(rand(Time.now.to_i))
144
+
145
+ author = t.sender
146
+ owner = t.receiver
147
+ user_author = ( t.sender.subject_type == "User" ? t.sender : t.sender.user_author )
148
+
149
+ p = Post.create :text =>
150
+ "This post sActorhould be for #{ t.relation.name } of #{ t.sender.name }.\n#{ Forgery::LoremIpsum.paragraph(:random => true) }",
151
+ :created_at => Time.at(rand(updated.to_i)),
152
+ :updated_at => updated,
153
+ :author_id => author.id,
154
+ :owner_id => owner.id,
155
+ :user_author_id => user_author.id,
156
+ :_relation_ids => Array(t.relation_id)
157
+
158
+ p.post_activity.update_attributes(:created_at => p.created_at,
159
+ :updated_at => p.updated_at)
160
+ end
161
+
162
+ posts_end = Time.now
163
+ puts ' -> ' + (posts_end - posts_start).round(4).to_s + 's'
164
+ else
165
+ puts ' -> Cheesecake Testing Mode. Avoiding Post Population.'
147
166
  end
148
167
 
149
- posts_end = Time.now
150
- puts ' -> ' + (posts_end - posts_start).round(4).to_s + 's'
151
-
168
+ # = Mailboxer
152
169
  puts 'Mailboxer population'
153
- mailboxer_start = Time.now
154
-
155
- # = Mailboxer
156
- available_actors = Actor.all
157
-
158
- available_actors.each do |a|
159
- actors = available_actors.dup - Array(a)
160
-
161
- mult_recp = actors.uniq
162
- if (demo = User.find_by_name('demo')) and !mult_recp.include? Actor.normalize(demo)
163
- mult_recp << Actor.normalize(demo)
164
- end
165
- actor = mult_recp[(rand * mult_recp.size).to_i]
166
- mult_recp.delete(actor)
167
- mail = actor.send_message(mult_recp, "Hello all, I am #{actor.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}", Forgery::LoremIpsum.words(10,:random => true))
168
- actor = mult_recp[(rand * mult_recp.size).to_i]
169
- mail = actor.reply_to_all(mail, "Well, I am #{actor.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}")
170
- actor = mult_recp[(rand * mult_recp.size).to_i]
171
- mail = actor.reply_to_all(mail, "Ok, I am #{actor.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}")
172
- actor = mult_recp[(rand * mult_recp.size).to_i]
173
- mail = actor.reply_to_all(mail, "Pretty well, I am #{actor.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}")
174
- actor = mult_recp[(rand * mult_recp.size).to_i]
175
- actor.reply_to_all(mail, "Finally, I am #{actor.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}")
176
-
177
-
178
- if (demo = User.find_by_name('demo'))
179
- next if Actor.normalize(demo)==Actor.normalize(a)
180
- mail = a.send_message(demo, "Hello, #{demo.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}", Forgery::LoremIpsum.words(10,:random => true))
181
- if rand > 0.5
182
- mail = demo.reply_to_sender(mail, "Pretty well #{a.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}")
170
+ unless CHEESECAKE_TESTING
171
+ mailboxer_start = Time.now
172
+ available_actors = Actor.all
173
+
174
+ available_actors.each do |a|
175
+ actors = available_actors.dup - Array(a)
176
+
177
+ mult_recp = actors.uniq
178
+ if (demo = User.find_by_name('demo')) and !mult_recp.include? Actor.normalize(demo)
179
+ mult_recp << Actor.normalize(demo)
180
+ end
181
+ actor = mult_recp[(rand * mult_recp.size).to_i]
182
+ mult_recp.delete(actor)
183
+ mail = actor.send_message(mult_recp, "Hello all, I am #{actor.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}", Forgery::LoremIpsum.words(10,:random => true))
184
+ actor = mult_recp[(rand * mult_recp.size).to_i]
185
+ mail = actor.reply_to_all(mail, "Well, I am #{actor.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}")
186
+ actor = mult_recp[(rand * mult_recp.size).to_i]
187
+ mail = actor.reply_to_all(mail, "Ok, I am #{actor.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}")
188
+ actor = mult_recp[(rand * mult_recp.size).to_i]
189
+ mail = actor.reply_to_all(mail, "Pretty well, I am #{actor.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}")
190
+ actor = mult_recp[(rand * mult_recp.size).to_i]
191
+ actor.reply_to_all(mail, "Finally, I am #{actor.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}")
192
+
193
+
194
+ if (demo = User.find_by_name('demo'))
195
+ next if Actor.normalize(demo)==Actor.normalize(a)
196
+ mail = a.send_message(demo, "Hello, #{demo.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}", Forgery::LoremIpsum.words(10,:random => true))
183
197
  if rand > 0.5
184
- a.reply_to_sender(mail, "Ok #{demo.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}")
198
+ mail = demo.reply_to_sender(mail, "Pretty well #{a.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}")
199
+ if rand > 0.5
200
+ a.reply_to_sender(mail, "Ok #{demo.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}")
201
+ end
202
+ end
203
+ if rand > 0.75
204
+ mail.conversation.move_to_trash(demo)
185
205
  end
186
206
  end
187
- if rand > 0.75
188
- mail.conversation.move_to_trash(demo)
189
- end
190
- end
191
-
192
- Forgery::Basic.number(:at_most => actors.size).times do
193
- actor = actors.delete_at((rand * actors.size).to_i)
194
- next if Actor.normalize(actor)==Actor.normalize(a)
195
- mail = a.send_message(actor, "Hello, #{actor.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}", Forgery::LoremIpsum.words(10,:random => true))
196
- if rand > 0.5
197
- mail = actor.reply_to_sender(mail, "Pretty well #{a.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}")
207
+
208
+ Forgery::Basic.number(:at_most => actors.size).times do
209
+ actor = actors.delete_at((rand * actors.size).to_i)
210
+ next if Actor.normalize(actor)==Actor.normalize(a)
211
+ mail = a.send_message(actor, "Hello, #{actor.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}", Forgery::LoremIpsum.words(10,:random => true))
198
212
  if rand > 0.5
199
- a.reply_to_sender(mail, "Ok #{actor.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}")
213
+ mail = actor.reply_to_sender(mail, "Pretty well #{a.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}")
214
+ if rand > 0.5
215
+ a.reply_to_sender(mail, "Ok #{actor.name}. #{Forgery::LoremIpsum.sentences(2,:random => true)}")
216
+ end
217
+ end
218
+ if rand > 0.75
219
+ mail.conversation.move_to_trash(actor)
200
220
  end
201
- end
202
- if rand > 0.75
203
- mail.conversation.move_to_trash(actor)
204
221
  end
205
222
  end
223
+
224
+ mailboxer_end = Time.now
225
+ puts ' -> ' + (mailboxer_end - mailboxer_start).round(4).to_s + 's'
226
+ else
227
+ puts ' -> Cheesecake Testing Mode. Avoiding Mailboxer Population.'
206
228
  end
207
229
 
208
- mailboxer_end = Time.now
209
- puts ' -> ' + (mailboxer_end - mailboxer_start).round(4).to_s + 's'
210
-
211
-
212
230
 
213
231
  puts 'Avatar population'
214
232
  avatar_start = Time.now
@@ -42,7 +42,7 @@ Gem::Specification.new do |s|
42
42
  # HTML Forms
43
43
  s.add_runtime_dependency('formtastic','~> 1.2.3')
44
44
  # Simple navigation for menu
45
- s.add_runtime_dependency('simple-navigation')
45
+ s.add_runtime_dependency('simple-navigation', '~> 3.5.1')
46
46
  # Background jobs
47
47
  s.add_runtime_dependency('resque','~> 1.19.0')
48
48
  # Modernizr.js javascript library
@@ -53,6 +53,8 @@ Gem::Specification.new do |s|
53
53
  s.add_runtime_dependency('sass-rails', '~> 3.1.0')
54
54
  # Autolink text blocks
55
55
  s.add_runtime_dependency('rails_autolink', '~> 1.0.4')
56
+ # SocialCheesecake
57
+ s.add_runtime_dependency('social_cheesecake','~> 0.0.1')
56
58
 
57
59
  # Development gem dependencies
58
60
  #
@@ -48,4 +48,33 @@ describe Actor do
48
48
 
49
49
  Actor.find_by_id(a.id).should be_nil
50
50
  end
51
+
52
+ context "cheesecake" do
53
+ before do
54
+ @user = Factory(:user)
55
+ end
56
+
57
+ it "should build json" do
58
+ hash = {
59
+ :sectors => @user.relation_customs.map do |r|
60
+ { :name => r.name,
61
+ :subsectors => [ { :name => r.name, :actors => [] } ]
62
+ }
63
+ end
64
+ }
65
+
66
+ @user.cheesecake_json.should eq(hash.to_json)
67
+ end
68
+
69
+ context "with tie" do
70
+ before do
71
+ @tie =
72
+ Factory(:friend, :contact => Factory(:contact, :sender => @user.actor))
73
+ end
74
+
75
+ it "should render json" do
76
+ @user.cheesecake_json.should include(@tie.receiver.id.to_s)
77
+ end
78
+ end
79
+ end
51
80
  end
@@ -1,3 +1,3 @@
1
1
  module SocialStream
2
- VERSION = "0.15.6".freeze
2
+ VERSION = "0.15.7".freeze
3
3
  end
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.files = `git ls-files`.split("\n")
12
12
 
13
13
  # Gem dependencies
14
- s.add_runtime_dependency('social_stream-base', '~> 0.10.9')
14
+ s.add_runtime_dependency('social_stream-base', '~> 0.10.10')
15
15
  s.add_runtime_dependency('social_stream-documents', '~> 0.5.2')
16
16
  s.add_runtime_dependency('social_stream-events', '~> 0.2.0')
17
17
  s.add_runtime_dependency('social_stream-linkser', '~> 0.0.6')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: social_stream
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.6
4
+ version: 0.15.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,22 +10,22 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-12-16 00:00:00.000000000Z
13
+ date: 2011-12-19 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: social_stream-base
17
- requirement: &74507750 !ruby/object:Gem::Requirement
17
+ requirement: &74287040 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
21
21
  - !ruby/object:Gem::Version
22
- version: 0.10.9
22
+ version: 0.10.10
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *74507750
25
+ version_requirements: *74287040
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: social_stream-documents
28
- requirement: &74507500 !ruby/object:Gem::Requirement
28
+ requirement: &74286790 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 0.5.2
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *74507500
36
+ version_requirements: *74286790
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: social_stream-events
39
- requirement: &74507270 !ruby/object:Gem::Requirement
39
+ requirement: &74286500 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 0.2.0
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *74507270
47
+ version_requirements: *74286500
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: social_stream-linkser
50
- requirement: &74507040 !ruby/object:Gem::Requirement
50
+ requirement: &74286210 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ~>
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: 0.0.6
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *74507040
58
+ version_requirements: *74286210
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: capybara
61
- requirement: &74506810 !ruby/object:Gem::Requirement
61
+ requirement: &74285920 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ~>
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: 0.3.9
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *74506810
69
+ version_requirements: *74285920
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: sqlite3
72
- requirement: &74506610 !ruby/object:Gem::Requirement
72
+ requirement: &74285690 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: '0'
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *74506610
80
+ version_requirements: *74285690
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: rspec-rails
83
- requirement: &74506320 !ruby/object:Gem::Requirement
83
+ requirement: &74285340 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ~>
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: 2.5.0
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *74506320
91
+ version_requirements: *74285340
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: factory_girl
94
- requirement: &74506070 !ruby/object:Gem::Requirement
94
+ requirement: &74285000 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ~>
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: 1.3.2
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *74506070
102
+ version_requirements: *74285000
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: forgery
105
- requirement: &74505840 !ruby/object:Gem::Requirement
105
+ requirement: &74284750 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ~>
@@ -110,10 +110,10 @@ dependencies:
110
110
  version: 0.3.6
111
111
  type: :development
112
112
  prerelease: false
113
- version_requirements: *74505840
113
+ version_requirements: *74284750
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: ci_reporter
116
- requirement: &74505610 !ruby/object:Gem::Requirement
116
+ requirement: &74284500 !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
119
119
  - - ~>
@@ -121,7 +121,7 @@ dependencies:
121
121
  version: 1.6.4
122
122
  type: :development
123
123
  prerelease: false
124
- version_requirements: *74505610
124
+ version_requirements: *74284500
125
125
  description: Social Stream is a Ruby on Rails engine for building social network websites.
126
126
  It supports contacts, posts, file uploads, private messages and many more.
127
127
  email:
@@ -295,6 +295,7 @@ files:
295
295
  - base/app/assets/images/tipsy.gif
296
296
  - base/app/assets/javascripts/activities.js.erb
297
297
  - base/app/assets/javascripts/activities_security_chosen-modified.jquery.js
298
+ - base/app/assets/javascripts/cheesecake.js
298
299
  - base/app/assets/javascripts/contacts.js
299
300
  - base/app/assets/javascripts/conversations.js
300
301
  - base/app/assets/javascripts/groups.js
@@ -317,6 +318,7 @@ files:
317
318
  - base/app/assets/stylesheets/_colors.scss
318
319
  - base/app/assets/stylesheets/activities.css.scss
319
320
  - base/app/assets/stylesheets/base.css.scss
321
+ - base/app/assets/stylesheets/cheesecake.css.scss
320
322
  - base/app/assets/stylesheets/contacts.css.scss
321
323
  - base/app/assets/stylesheets/conversations.css
322
324
  - base/app/assets/stylesheets/footer.css.scss
@@ -356,6 +358,7 @@ files:
356
358
  - base/app/controllers/activities_controller.rb
357
359
  - base/app/controllers/api_controller.rb
358
360
  - base/app/controllers/authentications_controller.rb
361
+ - base/app/controllers/cheesecake_controller.rb
359
362
  - base/app/controllers/comments_controller.rb
360
363
  - base/app/controllers/contacts_controller.rb
361
364
  - base/app/controllers/conversations_controller.rb
@@ -424,9 +427,12 @@ files:
424
427
  - base/app/views/activities/index.js.erb
425
428
  - base/app/views/activity_objects/_activity_object.html.erb
426
429
  - base/app/views/actors/_actor.html.erb
430
+ - base/app/views/actors/_actor_cheesecake.html.erb
427
431
  - base/app/views/api/activity_atom_feed.atom.builder
428
432
  - base/app/views/avatars/index.html.erb
429
433
  - base/app/views/avatars/update.js.erb
434
+ - base/app/views/cheesecake/_index.html.erb
435
+ - base/app/views/cheesecake/index.html.erb
430
436
  - base/app/views/comments/_comment.html.erb
431
437
  - base/app/views/comments/_new.html.erb
432
438
  - base/app/views/comments/create.js.erb