social_stream 0.12.12 → 0.12.13
Sign up to get free protection for your applications and to get access to all the features.
- data/base/app/models/actor.rb +2 -0
- data/base/app/models/tie.rb +2 -0
- data/base/app/models/user.rb +2 -0
- data/base/lib/social_stream/base/version.rb +1 -1
- data/base/social_stream-base.gemspec +1 -1
- data/documents/app/views/audios/index.html.erb +1 -1
- data/documents/app/views/audios/show.html.erb +1 -1
- data/documents/app/views/{common → common_documents}/_document_info.html.erb +1 -1
- data/documents/app/views/{common → common_documents}/_edit_form.html.erb +0 -0
- data/documents/app/views/{common → common_documents}/_headers.html.erb +0 -0
- data/documents/app/views/{common → common_documents}/_index.html.erb +1 -1
- data/documents/app/views/{common → common_documents}/_show.html.erb +1 -1
- data/documents/app/views/documents/index.html.erb +1 -1
- data/documents/app/views/documents/show.html.erb +1 -1
- data/documents/app/views/pictures/index.html.erb +1 -1
- data/documents/app/views/pictures/show.html.erb +1 -1
- data/documents/app/views/videos/index.html.erb +1 -1
- data/documents/app/views/videos/show.html.erb +1 -1
- data/documents/config/locales/en.yml +5 -5
- data/documents/config/locales/es.yml +7 -7
- data/documents/lib/social_stream/documents/version.rb +1 -1
- data/documents/lib/social_stream/toolbar_config/documents.rb +6 -6
- data/documents/social_stream-documents.gemspec +1 -1
- data/lib/social_stream/version.rb +1 -1
- data/presence/app/assets/javascripts/chat_interface_manager.js.erb +48 -0
- data/presence/app/assets/javascripts/chat_utilities.js +126 -0
- data/presence/app/assets/javascripts/chat_window_manager.js +1 -1
- data/presence/app/assets/javascripts/xmpp_client_management.js.erb +1 -26
- data/presence/lib/social_stream/presence/engine.rb +2 -6
- data/presence/vendor/assets/javascripts/jquery.ui.chatbox.js +22 -13
- data/social_stream.gemspec +6 -4
- metadata +15 -16
- data/documents/app/views/documents/_header.html.erb +0 -5
data/base/app/models/actor.rb
CHANGED
data/base/app/models/tie.rb
CHANGED
data/base/app/models/user.rb
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
# Activity and Relation hierarchies
|
19
19
|
s.add_runtime_dependency('ancestry', '~> 1.2.3')
|
20
20
|
# SQL foreign keys
|
21
|
-
s.add_runtime_dependency('foreigner', '~>
|
21
|
+
s.add_runtime_dependency('foreigner', '~> 1.1.1')
|
22
22
|
# Authentication
|
23
23
|
s.add_runtime_dependency('devise', '~> 1.4.5')
|
24
24
|
# CRUD controllers
|
@@ -1 +1 @@
|
|
1
|
-
<%=render(:partial => '
|
1
|
+
<%=render(:partial => 'common_documents/index') %>
|
@@ -1,2 +1,2 @@
|
|
1
|
-
<%= render :partial => '
|
1
|
+
<%= render :partial => 'common_documents/show',
|
2
2
|
:locals => { :document => @audio } %>
|
File without changes
|
File without changes
|
@@ -28,7 +28,7 @@
|
|
28
28
|
|
29
29
|
<%= show_view_for document %>
|
30
30
|
|
31
|
-
<%= render :partial => "
|
31
|
+
<%= render :partial => "common_documents/document_info", :locals => {:document => document} %>
|
32
32
|
|
33
33
|
<div id="document_comments">
|
34
34
|
<%= render :partial => 'activities/comments', :locals => { :activity => document.post_activity } %>
|
@@ -1 +1 @@
|
|
1
|
-
<%=render(:partial => '
|
1
|
+
<%=render(:partial => 'common_documents/index') %>
|
@@ -1,2 +1,2 @@
|
|
1
|
-
<%= render :partial => '
|
1
|
+
<%= render :partial => 'common_documents/show',
|
2
2
|
:locals => { :document => @document } %>
|
@@ -1 +1 @@
|
|
1
|
-
<%=render(:partial => '
|
1
|
+
<%=render(:partial => 'common_documents/index') %>
|
@@ -1,2 +1,2 @@
|
|
1
|
-
<%= render :partial => '
|
1
|
+
<%= render :partial => 'common_documents/show',
|
2
2
|
:locals => { :document => @picture } %>
|
@@ -1 +1 @@
|
|
1
|
-
<%=render(:partial => '
|
1
|
+
<%=render(:partial => 'common_documents/index') %>
|
@@ -1,2 +1,2 @@
|
|
1
|
-
<%= render :partial => '
|
1
|
+
<%= render :partial => 'common_documents/show',
|
2
2
|
:locals => { :document => @video } %>
|
@@ -14,8 +14,8 @@ en:
|
|
14
14
|
details: "Details"
|
15
15
|
download: "Download"
|
16
16
|
edit: "Edit"
|
17
|
-
all: "All
|
18
|
-
confirm_delete: "Delete
|
17
|
+
all: "All files"
|
18
|
+
confirm_delete: "Delete file?"
|
19
19
|
form:
|
20
20
|
title: "File"
|
21
21
|
info:
|
@@ -28,8 +28,8 @@ en:
|
|
28
28
|
title: "Upload"
|
29
29
|
title:
|
30
30
|
title: "Title"
|
31
|
-
mine: "My
|
32
|
-
msg: "Uploaded a
|
31
|
+
mine: "My files"
|
32
|
+
msg: "Uploaded a file:"
|
33
33
|
name: "file"
|
34
34
|
not_mine: "Documents"
|
35
35
|
one: "a file"
|
@@ -52,7 +52,7 @@ en:
|
|
52
52
|
resource:
|
53
53
|
all: "All Resources"
|
54
54
|
confirm_delete: "Delete resource?"
|
55
|
-
title: "
|
55
|
+
title: "Resources"
|
56
56
|
mine: "My resources"
|
57
57
|
msg: "Uploaded a resource:"
|
58
58
|
not_mine: "Resources"
|
@@ -14,8 +14,8 @@ es:
|
|
14
14
|
details: "Detalles"
|
15
15
|
download: "Descargar"
|
16
16
|
edit: "Editar"
|
17
|
-
all: "Todos los
|
18
|
-
confirm_delete: "¿Borrar
|
17
|
+
all: "Todos los ficheros"
|
18
|
+
confirm_delete: "¿Borrar fichero?"
|
19
19
|
form:
|
20
20
|
title: "Fichero"
|
21
21
|
info:
|
@@ -28,11 +28,11 @@ es:
|
|
28
28
|
title: "Subir"
|
29
29
|
title:
|
30
30
|
title: "Título"
|
31
|
-
mine: "Mis
|
32
|
-
msg: "Subió un
|
33
|
-
name: "
|
31
|
+
mine: "Mis ficheros"
|
32
|
+
msg: "Subió un fichero:"
|
33
|
+
name: "fichero"
|
34
34
|
not_mine: "Documentos"
|
35
|
-
one: "un
|
35
|
+
one: "un fichero"
|
36
36
|
simple_all: "Todos"
|
37
37
|
title: "Documentos"
|
38
38
|
picture:
|
@@ -52,7 +52,7 @@ es:
|
|
52
52
|
resource:
|
53
53
|
all: "Todos los recursos"
|
54
54
|
confirm_delete: "¿Borrar recursos?"
|
55
|
-
title: "
|
55
|
+
title: "Recursos"
|
56
56
|
mine: "Mis recursos"
|
57
57
|
msg: "Subió un recurso:"
|
58
58
|
not_mine: "Recursos"
|
@@ -5,10 +5,10 @@ module SocialStream
|
|
5
5
|
items = super
|
6
6
|
|
7
7
|
items << {
|
8
|
-
:key => :
|
9
|
-
:name => image_tag("btn/btn_resource.png",:class =>"menu_icon")+t("
|
8
|
+
:key => :documents,
|
9
|
+
:name => image_tag("btn/btn_resource.png",:class =>"menu_icon")+t("document.title"),
|
10
10
|
:url => polymorphic_path([subject, Document.new]),
|
11
|
-
:options => {:link => {:id => "
|
11
|
+
:options => {:link => {:id => "documents_menu"}}
|
12
12
|
}
|
13
13
|
end
|
14
14
|
|
@@ -16,10 +16,10 @@ module SocialStream
|
|
16
16
|
items = super
|
17
17
|
|
18
18
|
items << {
|
19
|
-
:key => :
|
20
|
-
:name => image_tag("btn/btn_resource.png",:class =>"menu_icon")+t("
|
19
|
+
:key => :documents,
|
20
|
+
:name => image_tag("btn/btn_resource.png",:class =>"menu_icon")+t("document.title"),
|
21
21
|
:url => polymorphic_path([current_subject, Document.new]),
|
22
|
-
:options => {:link => {:id => "
|
22
|
+
:options => {:link => {:id => "documents_menu"}}
|
23
23
|
}
|
24
24
|
end
|
25
25
|
end
|
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.files = `git ls-files`.split("\n")
|
13
13
|
|
14
14
|
# Gem dependencies
|
15
|
-
s.add_runtime_dependency('social_stream-base', '~> 0.9.
|
15
|
+
s.add_runtime_dependency('social_stream-base', '~> 0.9.35')
|
16
16
|
s.add_runtime_dependency('paperclip-ffmpeg', '~> 0.7.0')
|
17
17
|
s.add_runtime_dependency('paperclip','2.3.11')
|
18
18
|
s.add_runtime_dependency('delayed_paperclip','>= 0.7.2')
|
@@ -194,4 +194,52 @@ function getAllConnectedSlugs(){
|
|
194
194
|
}
|
195
195
|
});
|
196
196
|
return connectedSlugs
|
197
|
+
}
|
198
|
+
|
199
|
+
|
200
|
+
////////////////////
|
201
|
+
//Insert received message in chatbox
|
202
|
+
////////////////////
|
203
|
+
|
204
|
+
function putReceivedMessageOnChatWindow(from_jid,from_slug,body,msgID){
|
205
|
+
|
206
|
+
//Antiflood control
|
207
|
+
if (antifloodControl(from_jid,from_slug,body,msgID)){
|
208
|
+
return;
|
209
|
+
}
|
210
|
+
|
211
|
+
//Check for from_slug name and connectionBox visibility
|
212
|
+
if (typeof($('div.user_presence[slug=' + from_slug + ']').attr('name')) == 'undefined') {
|
213
|
+
//No connectionBox for this user!
|
214
|
+
var from_name = from_slug;
|
215
|
+
refreshChatWindow();
|
216
|
+
} else {
|
217
|
+
showConnectionBoxFromSlug(from_slug);
|
218
|
+
var from_name = $('div.user_presence[slug=' + from_slug + ']').attr('name');
|
219
|
+
}
|
220
|
+
|
221
|
+
|
222
|
+
//Create or toggle from_slug's chatBox.
|
223
|
+
if (createChatBox(from_slug, from_name, from_jid, user_name, user_jid)) {
|
224
|
+
} else {
|
225
|
+
window[getChatVariableFromSlug(from_slug)].chatbox("option", "boxManager").toggleBox(true);
|
226
|
+
}
|
227
|
+
|
228
|
+
//Parse content before show it.
|
229
|
+
var content = getParsedContent(Strophe.getText(body), false)
|
230
|
+
|
231
|
+
//Show message to chatBox.
|
232
|
+
$("#" + from_slug).chatbox("option", "boxManager").addMsg(from_name, content);
|
233
|
+
|
234
|
+
//Rotate chatBoxes priority.
|
235
|
+
rotatePriority(from_slug);
|
236
|
+
|
237
|
+
//Check for start blinkTitle.
|
238
|
+
blinkTitleOnMessage(from_name);
|
239
|
+
|
240
|
+
//Check for play sound
|
241
|
+
if (mustPlaySoundForChatWindow(window[getChatVariableFromSlug(from_slug)])) {
|
242
|
+
playSound("onMessageAudio");
|
243
|
+
}
|
244
|
+
|
197
245
|
}
|
@@ -64,6 +64,132 @@ function blinkTitleOnMessage(username){
|
|
64
64
|
}
|
65
65
|
|
66
66
|
|
67
|
+
|
68
|
+
////////////////////
|
69
|
+
//Antiflood
|
70
|
+
////////////////////
|
71
|
+
|
72
|
+
var lastMessageTimes = new Array();
|
73
|
+
//lastMessageTimes['from_slug'] = ["timeOfLastMessage",["msgID1","msgID2"]];
|
74
|
+
|
75
|
+
var timeBetweenMessages = 500; //mseconds
|
76
|
+
|
77
|
+
//Return true when detects a text storm and control the text flood:
|
78
|
+
//timeBetweenMessages is the minimum time that must elapse between the messages of the same contact.
|
79
|
+
function antifloodControl(from_jid,from_slug,body,msgID) {
|
80
|
+
|
81
|
+
if( from_slug in lastMessageTimes){
|
82
|
+
|
83
|
+
} else {
|
84
|
+
lastMessageTimes[from_slug] = [,[]];
|
85
|
+
}
|
86
|
+
|
87
|
+
if (msgID==null){
|
88
|
+
msgID = generateMessageID();
|
89
|
+
}
|
90
|
+
|
91
|
+
var lastMessageTime = lastMessageTimes[from_slug][0];
|
92
|
+
|
93
|
+
var t = (new Date()).getTime();
|
94
|
+
if(t - lastMessageTime < timeBetweenMessages) {
|
95
|
+
//Flood detected
|
96
|
+
return retryToShowMessage(from_jid,from_slug,body,msgID);
|
97
|
+
}
|
98
|
+
|
99
|
+
//Check if is the first message of this user to be send.
|
100
|
+
//var messageQueue = lastMessageTimes[from_slug][1];
|
101
|
+
|
102
|
+
if (lastMessageTimes[from_slug][1].length>0){
|
103
|
+
if((lastMessageTimes[from_slug][1])[0]==msgID){
|
104
|
+
//Message is the first on the queue: Show it and remove from the queue
|
105
|
+
lastMessageTimes[from_slug][1].splice(0,1);
|
106
|
+
} else {
|
107
|
+
//Message is not the first on the queue
|
108
|
+
return retryToShowMessage(from_jid,from_slug,body,msgID);
|
109
|
+
}
|
110
|
+
}
|
111
|
+
|
112
|
+
//Message can be send
|
113
|
+
lastMessageTimes[from_slug][0] = t;
|
114
|
+
return false;
|
115
|
+
};
|
116
|
+
|
117
|
+
|
118
|
+
var rootMessageID=1;
|
119
|
+
function generateMessageID(){
|
120
|
+
return (++rootMessageID);
|
121
|
+
}
|
122
|
+
|
123
|
+
|
124
|
+
function retryToShowMessage(from_jid,from_slug,body,msgID){
|
125
|
+
//Enque the message if isn't in the queue
|
126
|
+
if (lastMessageTimes[from_slug][1].indexOf(msgID)==-1){
|
127
|
+
lastMessageTimes[from_slug][1].push(msgID);
|
128
|
+
}
|
129
|
+
|
130
|
+
setTimeout(function(){putReceivedMessageOnChatWindow(from_jid,from_slug,body,msgID)}, timeBetweenMessages);
|
131
|
+
return true;
|
132
|
+
}
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
|
138
|
+
////////////////////
|
139
|
+
//Controlflood
|
140
|
+
////////////////////
|
141
|
+
var timeBetweenOwnMessages = 500; //mseconds
|
142
|
+
var lastMessageSentTime=null;
|
143
|
+
|
144
|
+
function floodControl() {
|
145
|
+
var t = (new Date()).getTime();
|
146
|
+
|
147
|
+
if(lastMessageSentTime==null){
|
148
|
+
lastMessageSentTime = t;
|
149
|
+
return true;
|
150
|
+
}
|
151
|
+
|
152
|
+
if (t - lastMessageSentTime < timeBetweenOwnMessages) {
|
153
|
+
return false;
|
154
|
+
} else {
|
155
|
+
lastMessageSentTime = t;
|
156
|
+
return true;
|
157
|
+
}
|
158
|
+
};
|
159
|
+
|
160
|
+
|
161
|
+
function initControlFlood(){
|
162
|
+
$(".ui-chatbox-input-box")
|
163
|
+
}
|
164
|
+
|
165
|
+
|
166
|
+
////////////////////
|
167
|
+
//Bounce chatbox control
|
168
|
+
////////////////////
|
169
|
+
var lastBounceTimes = new Array();
|
170
|
+
var timeBetweenBounces = 5000; //mseconds
|
171
|
+
|
172
|
+
function mustBounceBoxForChatWindow(jqueryUIChatbox){
|
173
|
+
var from_slug = $($(jqueryUIChatbox.elem.uiChatbox).find(".ui-chatbox-content").children()[0]).attr("id")
|
174
|
+
|
175
|
+
var t = (new Date()).getTime();
|
176
|
+
|
177
|
+
if(!(from_slug in lastBounceTimes)){
|
178
|
+
lastBounceTimes[from_slug] = t;
|
179
|
+
return true;
|
180
|
+
}
|
181
|
+
|
182
|
+
var lastBounceTime = lastBounceTimes[from_slug];
|
183
|
+
|
184
|
+
if (t - lastBounceTime < timeBetweenBounces) {
|
185
|
+
return false;
|
186
|
+
} else {
|
187
|
+
lastBounceTimes[from_slug] = t;
|
188
|
+
return true;
|
189
|
+
}
|
190
|
+
|
191
|
+
}
|
192
|
+
|
67
193
|
////////////////////
|
68
194
|
//Next features...
|
69
195
|
////////////////////
|
@@ -52,7 +52,7 @@ function createChatBox(guest_slug,guest_name,guest_jid,user_name,user_jid){
|
|
52
52
|
},
|
53
53
|
|
54
54
|
messageSent : function(id, user, msg) {
|
55
|
-
|
55
|
+
rotatePriority(guest_slug);
|
56
56
|
$("#" + guest_slug).chatbox("option", "boxManager").addMsg(id, getParsedContent(msg,true));
|
57
57
|
sendChatMessage(user_jid,guest_jid,msg);
|
58
58
|
}});
|
@@ -181,36 +181,11 @@ function onMessage(msg) {
|
|
181
181
|
var elems = msg.getElementsByTagName('body');
|
182
182
|
|
183
183
|
if (type == "chat" && elems.length > 0) {
|
184
|
-
|
185
184
|
var body = elems[0];
|
186
185
|
var from_slug = from.split("@")[0];
|
187
|
-
var from_name = $("#" + from_slug).attr("name");
|
188
186
|
var from_jid = from_slug + "@" + domain;
|
189
187
|
|
190
|
-
|
191
|
-
if (typeof ($('div.user_presence[slug=' + from_slug + ']').attr('name')) == 'undefined') {
|
192
|
-
//No connectionBox for this user!
|
193
|
-
var from_name = from_slug;
|
194
|
-
refreshChatWindow();
|
195
|
-
} else {
|
196
|
-
showConnectionBoxFromSlug(from_slug);
|
197
|
-
var from_name = $('div.user_presence[slug=' + from_slug + ']').attr('name');
|
198
|
-
}
|
199
|
-
|
200
|
-
if (createChatBox(from_slug,from_name,from_jid,user_name,user_jid)) {
|
201
|
-
} else {
|
202
|
-
window[getChatVariableFromSlug(from_slug)].chatbox("option", "boxManager").toggleBox(true);
|
203
|
-
}
|
204
|
-
|
205
|
-
var content = getParsedContent(Strophe.getText(body),false)
|
206
|
-
//Send message to chatBox and post-message functions.
|
207
|
-
$("#" + from_slug).chatbox("option", "boxManager").addMsg(from_name, content);
|
208
|
-
rotatePriority(from_slug);
|
209
|
-
blinkTitleOnMessage(from_name);
|
210
|
-
if (mustPlaySoundForChatWindow(window[getChatVariableFromSlug(from_slug)])){
|
211
|
-
playSound("onMessageAudio");
|
212
|
-
}
|
213
|
-
|
188
|
+
putReceivedMessageOnChatWindow(from_jid,from_slug,body,null)
|
214
189
|
}
|
215
190
|
|
216
191
|
// we must return true to keep the handler alive.
|
@@ -1,15 +1,11 @@
|
|
1
1
|
module SocialStream
|
2
2
|
module Presence
|
3
3
|
class Engine < Rails::Engine
|
4
|
-
|
5
|
-
|
6
|
-
#Patching Tie
|
7
|
-
Tie.class_eval do
|
4
|
+
initializer "social_stream-presence.tie" do
|
5
|
+
ActiveSupport.on_load(:tie) do
|
8
6
|
include SocialStream::Presence::Models::BuddyManager
|
9
7
|
end
|
10
|
-
|
11
8
|
end
|
12
|
-
|
13
9
|
end
|
14
10
|
end
|
15
11
|
end
|
@@ -54,11 +54,18 @@
|
|
54
54
|
//Get highlight color from css
|
55
55
|
var dummy_element = $("<p class=\"chatWindowhighlighted\"></div>");
|
56
56
|
var options = {color: $(dummy_element).css("color")};
|
57
|
+
|
57
58
|
self.elem.uiChatboxTitlebar.effect("highlight", options, 300);
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
59
|
+
|
60
|
+
|
61
|
+
if (((typeof mustBounceBoxForChatWindow == 'function')&&(mustBounceBoxForChatWindow(self)))||((typeof mustBounceBoxForChatWindow != 'function'))) {
|
62
|
+
self.elem.uiChatbox.effect("bounce", {times:3}, 300, function(){
|
63
|
+
self.highlightLock = false;
|
64
|
+
self._scrollToBottom();
|
65
|
+
});
|
66
|
+
} else {
|
67
|
+
self.highlightLock = false;
|
68
|
+
}
|
62
69
|
},
|
63
70
|
toggleBox: function(show) {
|
64
71
|
this.elem.uiChatbox.toggle(show);
|
@@ -187,15 +194,17 @@
|
|
187
194
|
)
|
188
195
|
.appendTo(uiChatboxInput)
|
189
196
|
.keydown(function(event) {
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
197
|
+
if(event.keyCode && event.keyCode == $.ui.keyCode.ENTER) {
|
198
|
+
if (((typeof floodControl == 'function')&&(floodControl()))||((typeof floodControl != 'function'))) {
|
199
|
+
msg = $.trim($(this).val());
|
200
|
+
if (msg.length > 0) {
|
201
|
+
self.options.messageSent(self.options.id, self.options.user, msg);
|
202
|
+
}
|
203
|
+
$(this).val('');
|
204
|
+
}
|
205
|
+
return false;
|
206
|
+
}
|
207
|
+
})
|
199
208
|
.focusin(function() {
|
200
209
|
uiChatboxInputBox.addClass('ui-chatbox-input-focus');
|
201
210
|
var box = $(this).parent().prev();
|
data/social_stream.gemspec
CHANGED
@@ -11,8 +11,8 @@ 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.9.
|
15
|
-
s.add_runtime_dependency('social_stream-documents', '~> 0.4.
|
14
|
+
s.add_runtime_dependency('social_stream-base', '~> 0.9.35')
|
15
|
+
s.add_runtime_dependency('social_stream-documents', '~> 0.4.7')
|
16
16
|
s.add_runtime_dependency('social_stream-events', '~> 0.0.20')
|
17
17
|
|
18
18
|
# Development Gem dependencies
|
@@ -29,8 +29,10 @@ Gem::Specification.new do |s|
|
|
29
29
|
s.add_development_dependency('sqlite3')
|
30
30
|
end
|
31
31
|
# Debugging
|
32
|
-
|
33
|
-
|
32
|
+
unless ENV["CI"]
|
33
|
+
if RUBY_VERSION < '1.9'
|
34
|
+
s.add_development_dependency('ruby-debug', '~> 0.10.3')
|
35
|
+
end
|
34
36
|
end
|
35
37
|
# Specs
|
36
38
|
s.add_development_dependency('rspec-rails', '~> 2.5.0')
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: social_stream
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 53
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 12
|
9
|
-
-
|
10
|
-
version: 0.12.
|
9
|
+
- 13
|
10
|
+
version: 0.12.13
|
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-11-
|
19
|
+
date: 2011-11-20 00:00:00 +01:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -27,12 +27,12 @@ dependencies:
|
|
27
27
|
requirements:
|
28
28
|
- - ~>
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
hash:
|
30
|
+
hash: 125
|
31
31
|
segments:
|
32
32
|
- 0
|
33
33
|
- 9
|
34
|
-
-
|
35
|
-
version: 0.9.
|
34
|
+
- 35
|
35
|
+
version: 0.9.35
|
36
36
|
type: :runtime
|
37
37
|
version_requirements: *id001
|
38
38
|
- !ruby/object:Gem::Dependency
|
@@ -43,12 +43,12 @@ dependencies:
|
|
43
43
|
requirements:
|
44
44
|
- - ~>
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
hash:
|
46
|
+
hash: 1
|
47
47
|
segments:
|
48
48
|
- 0
|
49
49
|
- 4
|
50
|
-
-
|
51
|
-
version: 0.4.
|
50
|
+
- 7
|
51
|
+
version: 0.4.7
|
52
52
|
type: :runtime
|
53
53
|
version_requirements: *id002
|
54
54
|
- !ruby/object:Gem::Dependency
|
@@ -876,17 +876,16 @@ files:
|
|
876
876
|
- documents/app/views/audios/index.html.erb
|
877
877
|
- documents/app/views/audios/index.js.erb
|
878
878
|
- documents/app/views/audios/show.html.erb
|
879
|
-
- documents/app/views/
|
880
|
-
- documents/app/views/
|
881
|
-
- documents/app/views/
|
882
|
-
- documents/app/views/
|
883
|
-
- documents/app/views/
|
879
|
+
- documents/app/views/common_documents/_document_info.html.erb
|
880
|
+
- documents/app/views/common_documents/_edit_form.html.erb
|
881
|
+
- documents/app/views/common_documents/_headers.html.erb
|
882
|
+
- documents/app/views/common_documents/_index.html.erb
|
883
|
+
- documents/app/views/common_documents/_show.html.erb
|
884
884
|
- documents/app/views/documents/_document.html.erb
|
885
885
|
- documents/app/views/documents/_document_focus_search.html.erb
|
886
886
|
- documents/app/views/documents/_document_global_search.html.erb
|
887
887
|
- documents/app/views/documents/_document_show.html.erb
|
888
888
|
- documents/app/views/documents/_document_with_details.html.erb
|
889
|
-
- documents/app/views/documents/_header.html.erb
|
890
889
|
- documents/app/views/documents/_new_activity.html.erb
|
891
890
|
- documents/app/views/documents/_new_activity_fields.html.erb
|
892
891
|
- documents/app/views/documents/destroy.js.erb
|