social_stream 0.15.6 → 0.15.7
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/README.rdoc +1 -0
- data/base/Gemfile +1 -0
- data/base/app/assets/javascripts/cheesecake.js +6 -0
- data/base/app/assets/javascripts/social_stream-base.js +1 -0
- data/base/app/assets/stylesheets/cheesecake.css.scss +55 -0
- data/base/app/controllers/cheesecake_controller.rb +9 -0
- data/base/app/models/actor.rb +10 -0
- data/base/app/models/relation/custom.rb +13 -0
- data/base/app/views/actors/_actor_cheesecake.html.erb +4 -0
- data/base/app/views/cheesecake/_index.html.erb +38 -0
- data/base/app/views/cheesecake/index.html.erb +10 -0
- data/base/config/routes.rb +2 -0
- data/base/lib/social_stream/base/version.rb +1 -1
- data/base/lib/tasks/db/populate.rake +94 -76
- data/base/social_stream-base.gemspec +3 -1
- data/base/spec/models/actor_spec.rb +29 -0
- data/lib/social_stream/version.rb +1 -1
- data/social_stream.gemspec +1 -1
- metadata +29 -23
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
|
+
})();
|
|
@@ -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
|
+
|
data/base/app/models/actor.rb
CHANGED
|
@@ -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,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>
|
data/base/config/routes.rb
CHANGED
|
@@ -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 =
|
|
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.
|
|
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
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
:
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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
|
-
|
|
150
|
-
puts ' -> ' + (posts_end - posts_start).round(4).to_s + 's'
|
|
151
|
-
|
|
168
|
+
# = Mailboxer
|
|
152
169
|
puts 'Mailboxer population'
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
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
|
-
|
|
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
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
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
|
-
|
|
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
|
data/social_stream.gemspec
CHANGED
|
@@ -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.
|
|
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.
|
|
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-
|
|
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: &
|
|
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.
|
|
22
|
+
version: 0.10.10
|
|
23
23
|
type: :runtime
|
|
24
24
|
prerelease: false
|
|
25
|
-
version_requirements: *
|
|
25
|
+
version_requirements: *74287040
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: social_stream-documents
|
|
28
|
-
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: *
|
|
36
|
+
version_requirements: *74286790
|
|
37
37
|
- !ruby/object:Gem::Dependency
|
|
38
38
|
name: social_stream-events
|
|
39
|
-
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: *
|
|
47
|
+
version_requirements: *74286500
|
|
48
48
|
- !ruby/object:Gem::Dependency
|
|
49
49
|
name: social_stream-linkser
|
|
50
|
-
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: *
|
|
58
|
+
version_requirements: *74286210
|
|
59
59
|
- !ruby/object:Gem::Dependency
|
|
60
60
|
name: capybara
|
|
61
|
-
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: *
|
|
69
|
+
version_requirements: *74285920
|
|
70
70
|
- !ruby/object:Gem::Dependency
|
|
71
71
|
name: sqlite3
|
|
72
|
-
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: *
|
|
80
|
+
version_requirements: *74285690
|
|
81
81
|
- !ruby/object:Gem::Dependency
|
|
82
82
|
name: rspec-rails
|
|
83
|
-
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: *
|
|
91
|
+
version_requirements: *74285340
|
|
92
92
|
- !ruby/object:Gem::Dependency
|
|
93
93
|
name: factory_girl
|
|
94
|
-
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: *
|
|
102
|
+
version_requirements: *74285000
|
|
103
103
|
- !ruby/object:Gem::Dependency
|
|
104
104
|
name: forgery
|
|
105
|
-
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: *
|
|
113
|
+
version_requirements: *74284750
|
|
114
114
|
- !ruby/object:Gem::Dependency
|
|
115
115
|
name: ci_reporter
|
|
116
|
-
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: *
|
|
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
|