social_stream 0.17.0 → 0.17.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +7 -0
- data/base/app/assets/stylesheets/cheesecake.css.scss +57 -10
- data/base/app/assets/stylesheets/header.css.scss +2 -2
- data/base/app/controllers/settings_controller.rb +5 -1
- data/base/app/models/relation/custom.rb +2 -2
- data/base/app/views/actors/_actor_cheesecake.html.erb +20 -0
- data/base/app/views/cheesecake/_index.html.erb +54 -2
- data/base/app/views/layouts/_header_dropdown_menu_sessions.html.erb +1 -1
- data/base/app/views/settings/_language.html.erb +1 -1
- data/base/config/locales/en.yml +7 -0
- data/base/config/locales/es.yml +7 -0
- data/base/db/migrate/20120111120920_remove_language_default.rb +9 -0
- data/base/lib/social_stream/base/version.rb +1 -1
- data/base/lib/social_stream/controllers/subjects.rb +1 -1
- data/base/lib/tasks/db/populate.rake +16 -8
- data/base/social_stream-base.gemspec +1 -1
- data/base/spec/models/actor_spec.rb +2 -2
- data/lib/social_stream/version.rb +1 -1
- data/social_stream.gemspec +1 -1
- metadata +26 -25
data/README.rdoc
CHANGED
@@ -2,6 +2,9 @@
|
|
2
2
|
Social Stream is an engine for Ruby on Rails. It provides a robust and flexible core
|
3
3
|
with social networking features and activity streams for building websites.
|
4
4
|
|
5
|
+
{<img src="https://secure.travis-ci.org/ging/social_stream.png" />}[http://travis-ci.org/ging/social_stream]
|
6
|
+
{<img src="https://gemnasium.com/ging/social_stream.png" />}[https://gemnasium.com/ging/social_stream]
|
7
|
+
|
5
8
|
== Social networking
|
6
9
|
Social networks are a new paradigm on web application design. Social networking platforms stand
|
7
10
|
among the most popular websites, while many content oriented applications are supporting social
|
@@ -43,6 +46,10 @@ Do not forget to migrate your database
|
|
43
46
|
|
44
47
|
rake db:migrate
|
45
48
|
|
49
|
+
Since {Social Stream}[http://github.com/ging/social_stream] depends on {Devise}[https://github.com/plataformatec/devise], make sure you follow {its setup instructions}[https://github.com/plataformatec/devise/tree/master/lib/generators/templates#readme]. Specifically, make sure you set the default URL options for your environments at <tt>config/environments/*.rb</tt> with something like:
|
50
|
+
|
51
|
+
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
|
52
|
+
|
46
53
|
= Social Stream modules
|
47
54
|
|
48
55
|
Social Stream is divided in modules. Developers can customize their social
|
@@ -32,24 +32,71 @@
|
|
32
32
|
|
33
33
|
#contacts_grid {
|
34
34
|
width: 300px;
|
35
|
-
height:
|
35
|
+
height: 336px;
|
36
36
|
overflow: hidden;
|
37
37
|
position: relative;
|
38
38
|
float: left;
|
39
39
|
}
|
40
|
+
#contacts_grid_extra {
|
41
|
+
width: 270px;
|
42
|
+
padding: 5px;
|
43
|
+
height: 10px;
|
44
|
+
border: solid 1px $input-border-color;
|
45
|
+
text-align: center;
|
46
|
+
float: right;
|
47
|
+
margin-right: 20px;
|
48
|
+
cursor: pointer;
|
49
|
+
}
|
40
50
|
#contacts_grid .actor {
|
41
|
-
width:
|
42
|
-
height:
|
51
|
+
width: 48px;
|
52
|
+
height: 48px;
|
43
53
|
float: left;
|
44
|
-
margin:
|
54
|
+
margin: 4px;
|
45
55
|
}
|
46
56
|
#contacts_grid .actor.focused {
|
47
|
-
border: 2px solid
|
48
|
-
|
49
|
-
margin: 3px;
|
57
|
+
border: 2px solid $main-color;
|
58
|
+
margin: 0px;
|
50
59
|
}
|
51
60
|
#contacts_grid .actor img {
|
52
|
-
width:
|
53
|
-
height:
|
61
|
+
width: 48px;
|
62
|
+
height: 48px;
|
63
|
+
}
|
64
|
+
#contacts_grid .actor.focused img {
|
65
|
+
width: 52px;
|
66
|
+
height: 52px;
|
67
|
+
}
|
68
|
+
#contacts_grid .actor.focused {
|
69
|
+
width: 52px;
|
70
|
+
height: 52px;
|
71
|
+
float: left;
|
72
|
+
margin: 0px;
|
73
|
+
}
|
74
|
+
#contacts_grid .actor .logo {
|
75
|
+
display: inline-block;
|
76
|
+
}
|
77
|
+
#contacts_grid .actor .link, #contacts_grid .actor .brief {
|
78
|
+
display: none;
|
79
|
+
}
|
80
|
+
.cheesecake_actor_tipsy.tipsy {
|
81
|
+
padding-top: 2px;
|
82
|
+
display: none;
|
83
|
+
}
|
84
|
+
.cheesecake_actor_tipsy.tipsy .tipsy-arrow {
|
85
|
+
display: none;
|
86
|
+
}
|
87
|
+
.cheesecake_actor_tipsy.tipsy .tipsy-inner {
|
88
|
+
background-color: $text-over-main;
|
89
|
+
padding: 9px;
|
90
|
+
border: 1px solid $main-color;
|
91
|
+
}
|
92
|
+
.cheesecake_actor_tipsy.tipsy .sub-block {
|
93
|
+
width: 100%;
|
94
|
+
word-wrap: break-word;
|
95
|
+
height: 50px;
|
96
|
+
overflow: hidden;
|
97
|
+
display: inline-block;
|
98
|
+
text-align: left;
|
99
|
+
}
|
100
|
+
.cheesecake_actor_tipsy.tipsy .logo {
|
101
|
+
display: none;
|
54
102
|
}
|
55
|
-
|
@@ -31,7 +31,7 @@
|
|
31
31
|
#representation { display: inline; padding-left:3px; padding-right:3px;}
|
32
32
|
.switch_pending_count { color: $text-over-main; text-align: right;
|
33
33
|
background: transparent url('btn/header_notifications.png') no-repeat center center;
|
34
|
-
padding: 2px 10px 4px 11px !important; margin:
|
34
|
+
padding: 2px 10px 4px 11px !important; margin: 2px 5px 0 5px !important; float: right; }
|
35
35
|
.txt_config {color: $text-over-main; vertical-align: top; display: inline; padding-top: 2px;
|
36
36
|
border-right: thin solid; padding-right: 3px;}
|
37
37
|
.txt_config2 {color: $text-over-main; vertical-align: top; display: inline; padding-top: 2px; padding-right: 3px;}
|
@@ -51,7 +51,7 @@
|
|
51
51
|
#header_dropdown_menu ul li a{padding: .40em 1em .70em 2.5em;}
|
52
52
|
#header_dropdown_menu ul li a:hover{color:$main-color;}
|
53
53
|
#header_dropdown_menu ul li ul li a{padding: .40em 1em .70em 1em;}
|
54
|
-
#header_dropdown_menu ul li ul li ul li {width: 170px;}
|
54
|
+
#header_dropdown_menu ul li ul li ul li {width: 170px; min-height: 25px; }
|
55
55
|
#header_dropdown_menu ul li ul li ul li a{padding: .40em 1em .70em 2.5em; display:inline;}
|
56
56
|
#header_dropdown_menu ul li ul li ul{position: absolute; left: -170px;}
|
57
57
|
#header_dropdown_menu a.session_change{background: transparent url('btn/arrow_session_change.png') no-repeat 3px 6px;}
|
@@ -27,7 +27,11 @@ class SettingsController < ApplicationController
|
|
27
27
|
#Preferred language setting
|
28
28
|
if params[:language].present?
|
29
29
|
lang = params[:language].to_s
|
30
|
-
|
30
|
+
if lang == 'browser'
|
31
|
+
current_user.language = nil
|
32
|
+
else
|
33
|
+
current_user.language = lang[0..1]
|
34
|
+
end
|
31
35
|
end
|
32
36
|
end
|
33
37
|
|
@@ -99,9 +99,9 @@ class Relation::Custom < Relation
|
|
99
99
|
|
100
100
|
# JSON compatible with SocialCheesecake
|
101
101
|
def to_cheesecake_hash(options = {})
|
102
|
-
{ :name => name
|
102
|
+
{:id => id, :name => name}.tap do |hash|
|
103
103
|
if options[:subsector]
|
104
|
-
hash[:actors] = ties.map{ |t| [t.contact.receiver_id] }.uniq
|
104
|
+
hash[:actors] = ties.map{ |t| [t.contact.receiver_id, t.contact.receiver.name] }.uniq
|
105
105
|
else
|
106
106
|
hash[:subsectors] = ( weaker.present? ?
|
107
107
|
weaker.map{ |w| w.to_cheesecake_hash(:subsector => true) } :
|
@@ -2,3 +2,23 @@
|
|
2
2
|
<%= image_tag(actor.logo.url , :size => "64x64", :alt => actor.name ) %>
|
3
3
|
<% end %>
|
4
4
|
|
5
|
+
<div id="<%= dom_id(actor)%>_details" style="display:none;">
|
6
|
+
<%= link_to truncate_name(actor.name), actor.subject %>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<%= javascript_tag do %>
|
10
|
+
$(document).ready(function(){
|
11
|
+
$('#<%= dom_id(actor)%>').tipsy({
|
12
|
+
delayIn: 700,
|
13
|
+
delayOut: 0,
|
14
|
+
gravity: 'n',
|
15
|
+
className: 'cheesecake_actor_tipsy',
|
16
|
+
html: true,
|
17
|
+
hoverable: true,
|
18
|
+
opacity: 0.95,
|
19
|
+
title: function(){
|
20
|
+
return $('#<%= dom_id(actor)%>_details').html();
|
21
|
+
}
|
22
|
+
});
|
23
|
+
});
|
24
|
+
<% end %>
|
@@ -3,12 +3,21 @@
|
|
3
3
|
<div id="contacts_filter">
|
4
4
|
<%= text_field_tag :filter_query, nil,:autocomplete => :off, :id => :contacts_filter_input %>
|
5
5
|
</div>
|
6
|
-
<div id="contacts_grid">
|
7
|
-
|
6
|
+
<div id="contacts_grid">
|
8
7
|
<% @actors.each do |actor|%>
|
9
8
|
<%= render :partial => "actors/actor_cheesecake", :locals => {:actor => actor} %>
|
10
9
|
<% end %>
|
11
10
|
</div>
|
11
|
+
<div id="contacts_grid_extra" style="display:none;">
|
12
|
+
<span id="contacts_grid_extra_total"></span> <span id="contacts_grid_extra_text"></span>
|
13
|
+
</div>
|
14
|
+
<%= javascript_tag do %>
|
15
|
+
$("#contacts_grid_extra").click(function(){
|
16
|
+
$("#contacts_grid").css("overflow-y","scroll");
|
17
|
+
$("#contacts_grid").scrollTo("+=308px", 800, {axis:'y'});
|
18
|
+
$("#contacts_grid_extra").hide();
|
19
|
+
});
|
20
|
+
<% end %>
|
12
21
|
<br class="clearfloat">
|
13
22
|
<%= javascript_tag do %>
|
14
23
|
$(function(){
|
@@ -31,8 +40,51 @@
|
|
31
40
|
rMax : 200,
|
32
41
|
center: {x : 220, y : 220}
|
33
42
|
};
|
43
|
+
cheesecakeData.highlightedSectorCallback = function(cheesecake){
|
44
|
+
$("#contacts_grid").css("overflow-y","hidden");
|
45
|
+
var sector = cheesecake.highlightedSector;
|
46
|
+
var actors = [];
|
47
|
+
var visibles = 0;
|
48
|
+
var extra_text = ["<%= t('cheesecake.hidden_contact.one')%>","<%= t('cheesecake.hidden_contact.other')%>"];
|
49
|
+
if(sector){
|
50
|
+
actors = sector.actors;
|
51
|
+
}else{
|
52
|
+
actors = cheesecake.grid.actors;
|
53
|
+
}
|
54
|
+
for(var i in actors){
|
55
|
+
if(actors[i].isVisible()){
|
56
|
+
visibles++;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
if(visibles <= 30){
|
60
|
+
$("#contacts_grid_extra").hide();
|
61
|
+
}else{
|
62
|
+
$("#contacts_grid_extra_total").html(visibles - 30);
|
63
|
+
if((visibles - 30) == 1){
|
64
|
+
$("#contacts_grid_extra_text").html(extra_text[0]);
|
65
|
+
}else{
|
66
|
+
$("#contacts_grid_extra_text").html(extra_text[1]);
|
67
|
+
}
|
68
|
+
$("#contacts_grid_extra").show();
|
69
|
+
$("#contacts_grid").scrollTo(0, 0);
|
70
|
+
}
|
71
|
+
}
|
34
72
|
cheesecakeData.sectors = <%= raw(current_subject.cheesecake_json) %>.sectors;
|
35
73
|
var cheese = new socialCheesecake.Cheesecake(cheesecakeData);
|
74
|
+
$("#contacts_filter_input").keyup(function(){
|
75
|
+
cheese.searchEngine.filter($("#contacts_filter_input").val());
|
76
|
+
cheesecakeData.highlightedSectorCallback(cheese);
|
77
|
+
});
|
78
|
+
if(cheese.grid.actors.length > 30){
|
79
|
+
var extra_text = ["<%= t('cheesecake.hidden_contact.one')%>","<%= t('cheesecake.hidden_contact.other')%>"];
|
80
|
+
$("#contacts_grid_extra_total").html(cheese.grid.actors.length - 30);
|
81
|
+
if((cheese.grid.actors.length - 30) == 1){
|
82
|
+
$("#contacts_grid_extra_text").html(extra_text[0]);
|
83
|
+
}else{
|
84
|
+
$("#contacts_grid_extra_text").html(extra_text[1]);
|
85
|
+
}
|
86
|
+
$("#contacts_grid_extra").show();
|
87
|
+
}
|
36
88
|
}
|
37
89
|
<% end %>
|
38
90
|
</div>
|
@@ -6,7 +6,7 @@
|
|
6
6
|
<% representations.each do |representation| %>
|
7
7
|
<li>
|
8
8
|
<%= content_tag :span do %>
|
9
|
-
<%= link_to truncate_name(representation.name, :length => 15), { :s => representation.slug }, { :style => "background: transparent url('#{ image_path representation.logo.url(:representation)}') no-repeat
|
9
|
+
<%= link_to truncate_name(representation.name, :length => 15), { :s => representation.slug }, { :style => "background: transparent url('#{ image_path representation.logo.url(:representation)}') no-repeat 0% 5px;margin-left:2px;" } %>
|
10
10
|
<% pending_total = representation.mailbox.notifications.not_trashed.unread.count %>
|
11
11
|
<%= link_to content_tag(:span, pending_total.to_s, :class => "switch_pending_count"), notifications_path(:s => representation.slug), { :style => 'margin: 1px; padding: 0;' } if pending_total > 0 %>
|
12
12
|
<% end %>
|
@@ -17,7 +17,7 @@
|
|
17
17
|
<div class="form_row">
|
18
18
|
<div class="form_label"><%= label_tag :language, t('settings.lang_change.name') %></div>
|
19
19
|
<div class="form_field">
|
20
|
-
<%= select_tag(:language, options_for_select(I18n.available_locales.map{|l| [ l.to_s, l.to_s ] }, current_user.language), :class => 'form_tag', :onchange => "$(\'#form_lang\').submit();" )%>
|
20
|
+
<%= select_tag(:language, options_for_select([[t('lang.browser'), 'browser']] + I18n.available_locales.map{|l| [ t("lang_names.#{l.to_s}") + ' (' + l.to_s + ')' , l.to_s ] }, (current_user.language.blank? ? 'browser' : current_user.language)), :class => 'form_tag', :onchange => "$(\'#form_lang\').submit();" )%>
|
21
21
|
</div>
|
22
22
|
</div>
|
23
23
|
<div class="actions center">
|
data/base/config/locales/en.yml
CHANGED
@@ -90,6 +90,10 @@ en:
|
|
90
90
|
create: "Create"
|
91
91
|
save: "Save"
|
92
92
|
update: "Update"
|
93
|
+
cheesecake:
|
94
|
+
hidden_contact:
|
95
|
+
one: "contact hidden"
|
96
|
+
other: "contacts hidden"
|
93
97
|
comment:
|
94
98
|
input: "Write a comment..."
|
95
99
|
confirm_delete: "Delete comment?"
|
@@ -475,3 +479,6 @@ en:
|
|
475
479
|
all: "All users"
|
476
480
|
all_n: "All users (%{count})"
|
477
481
|
welcome: "Welcome to %{site}!"
|
482
|
+
lang:
|
483
|
+
browser: "Auto-detect browser language"
|
484
|
+
none: "Language independent content"
|
data/base/config/locales/es.yml
CHANGED
@@ -90,6 +90,10 @@ es:
|
|
90
90
|
create: "Crear"
|
91
91
|
save: "Guardar"
|
92
92
|
update: "Actualizar"
|
93
|
+
cheesecake:
|
94
|
+
hidden_contact:
|
95
|
+
one: "contacto oculto"
|
96
|
+
other: "contactos ocultos"
|
93
97
|
comment:
|
94
98
|
input: "Comentar..."
|
95
99
|
confirm_delete: "¿Borrar commentario?"
|
@@ -474,4 +478,7 @@ es:
|
|
474
478
|
all: "Todos los usuarios"
|
475
479
|
all_n: "Todos los usuarios (%{count})"
|
476
480
|
welcome: "¡Bienvenid@ a %{site}!"
|
481
|
+
lang:
|
482
|
+
browser: "Autodetectar el idioma del navegador"
|
483
|
+
none: "Contenido independiente del idioma"
|
477
484
|
|
@@ -10,7 +10,7 @@ module SocialStream
|
|
10
10
|
module InstanceMethods
|
11
11
|
# Overwrite {SocialStream::Controllers::Helpers::InstanceMethods#profile_subject}
|
12
12
|
def profile_subject
|
13
|
-
!resource.
|
13
|
+
!resource.new_record? && resource || current_subject
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
@@ -12,6 +12,7 @@ namespace :db do
|
|
12
12
|
require 'forgery'
|
13
13
|
|
14
14
|
LOGOS_PATH = File.join(Rails.root, 'lib', 'logos')
|
15
|
+
LOGOS_TOTAL = (ENV["LOGOS_TOTAL"] || 10).to_i if ENV["LOGOS_TOTAL"].present?
|
15
16
|
USERS = (ENV["USERS"] || 9).to_i
|
16
17
|
GROUPS = (ENV["GROUPS"] || 10).to_i
|
17
18
|
CHEESECAKE = (ENV["CHEESECAKE"].present? || false)
|
@@ -41,8 +42,13 @@ namespace :db do
|
|
41
42
|
|
42
43
|
def set_logos(klass)
|
43
44
|
klass.all.each do |i|
|
44
|
-
|
45
|
-
|
45
|
+
if LOGOS_TOTAL
|
46
|
+
logo = Dir[File.join(LOGOS_PATH, klass.to_s.tableize, "#{ rand(LOGOS_TOTAL) + 1 }.*")].first
|
47
|
+
avatar = Dir[File.join(LOGOS_PATH, klass.to_s.tableize, "#{ rand(LOGOS_TOTAL) + 1 }.*")].first
|
48
|
+
else
|
49
|
+
logo = Dir[File.join(LOGOS_PATH, klass.to_s.tableize, "#{ i.id }.*")].first
|
50
|
+
avatar = Dir[File.join(LOGOS_PATH, klass.to_s.tableize, "#{ i.id }.*")].first
|
51
|
+
end
|
46
52
|
|
47
53
|
if avatar.present? && File.exists?(avatar)
|
48
54
|
Avatar.copy_to_temp_file(avatar)
|
@@ -120,16 +126,18 @@ namespace :db do
|
|
120
126
|
available_actors.each do |a|
|
121
127
|
actors = available_actors.dup - Array(a)
|
122
128
|
relations = a.relation_customs + Array.wrap(a.relation_reject)
|
123
|
-
break if actors.size==0
|
124
|
-
Forgery::Basic.number(:at_most => actors.size).times do
|
125
|
-
actor = actors.delete_at((rand * actors.size).to_i)
|
126
|
-
a.contact_to!(actor).relation_ids = Array(Forgery::Extensions::Array.new(relations).random.id) unless a==actor
|
127
|
-
end
|
129
|
+
break if actors.size==0
|
128
130
|
if CHEESECAKE
|
129
131
|
actor = Actor.first
|
130
132
|
unless a==actor
|
131
133
|
puts a.name + " connecting with " + actor.name
|
132
|
-
a.contact_to!(actor).relation_ids = Array(Forgery::Extensions::Array.new(
|
134
|
+
a.contact_to!(actor).relation_ids = Array(Forgery::Extensions::Array.new(a.relation_customs).random.id)
|
135
|
+
actor.contact_to!(a).relation_ids = Array(Forgery::Extensions::Array.new(actor.relation_customs).random.id)
|
136
|
+
end
|
137
|
+
else
|
138
|
+
Forgery::Basic.number(:at_most => actors.size).times do
|
139
|
+
actor = actors.delete_at((rand * actors.size).to_i)
|
140
|
+
a.contact_to!(actor).relation_ids = Array(Forgery::Extensions::Array.new(relations).random.id) unless a==actor
|
133
141
|
end
|
134
142
|
end
|
135
143
|
end
|
@@ -56,7 +56,7 @@ Gem::Specification.new do |s|
|
|
56
56
|
# Autolink text blocks
|
57
57
|
s.add_runtime_dependency('rails_autolink', '~> 1.0.4')
|
58
58
|
# SocialCheesecake
|
59
|
-
s.add_runtime_dependency('social_cheesecake','~> 0.
|
59
|
+
s.add_runtime_dependency('social_cheesecake','~> 0.2.0')
|
60
60
|
|
61
61
|
# Development gem dependencies
|
62
62
|
#
|
@@ -57,8 +57,8 @@ describe Actor do
|
|
57
57
|
it "should build json" do
|
58
58
|
hash = {
|
59
59
|
:sectors => @user.relation_customs.map do |r|
|
60
|
-
{ :name => r.name,
|
61
|
-
:subsectors => [ { :name => r.name, :actors => [] } ]
|
60
|
+
{ :id => r.id, :name => r.name,
|
61
|
+
:subsectors => [ { :id => r.id, :name => r.name, :actors => [] } ]
|
62
62
|
}
|
63
63
|
end
|
64
64
|
}
|
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.12.
|
14
|
+
s.add_runtime_dependency('social_stream-base', '~> 0.12.1')
|
15
15
|
s.add_runtime_dependency('social_stream-documents', '~> 0.7.0')
|
16
16
|
s.add_runtime_dependency('social_stream-events', '~> 0.4.0')
|
17
17
|
s.add_runtime_dependency('social_stream-linkser', '~> 0.2.0')
|
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.17.
|
4
|
+
version: 0.17.1
|
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: 2012-01-
|
13
|
+
date: 2012-01-13 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: social_stream-base
|
17
|
-
requirement: &
|
17
|
+
requirement: &80375130 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.12.
|
22
|
+
version: 0.12.1
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *80375130
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: social_stream-documents
|
28
|
-
requirement: &
|
28
|
+
requirement: &81047060 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 0.7.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *81047060
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: social_stream-events
|
39
|
-
requirement: &
|
39
|
+
requirement: &81455940 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 0.4.0
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *81455940
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: social_stream-linkser
|
50
|
-
requirement: &
|
50
|
+
requirement: &81467210 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 0.2.0
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *81467210
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: social_stream-presence
|
61
|
-
requirement: &
|
61
|
+
requirement: &81470040 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: 0.3.0
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *81470040
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: capybara
|
72
|
-
requirement: &
|
72
|
+
requirement: &81471880 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: 0.3.9
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *81471880
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: sqlite3
|
83
|
-
requirement: &
|
83
|
+
requirement: &81473830 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ! '>='
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: '0'
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *81473830
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: rspec-rails
|
94
|
-
requirement: &
|
94
|
+
requirement: &82029890 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ~>
|
@@ -99,10 +99,10 @@ dependencies:
|
|
99
99
|
version: 2.5.0
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *82029890
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: factory_girl
|
105
|
-
requirement: &
|
105
|
+
requirement: &83136780 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ~>
|
@@ -110,10 +110,10 @@ dependencies:
|
|
110
110
|
version: 1.3.2
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *83136780
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: forgery
|
116
|
-
requirement: &
|
116
|
+
requirement: &83519560 !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|
119
119
|
- - ~>
|
@@ -121,10 +121,10 @@ dependencies:
|
|
121
121
|
version: 0.4.2
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
|
-
version_requirements: *
|
124
|
+
version_requirements: *83519560
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: ci_reporter
|
127
|
-
requirement: &
|
127
|
+
requirement: &83620270 !ruby/object:Gem::Requirement
|
128
128
|
none: false
|
129
129
|
requirements:
|
130
130
|
- - ~>
|
@@ -132,7 +132,7 @@ dependencies:
|
|
132
132
|
version: 1.6.4
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
|
-
version_requirements: *
|
135
|
+
version_requirements: *83620270
|
136
136
|
description: Social Stream is a Ruby on Rails engine for building social network websites.
|
137
137
|
It supports contacts, posts, file uploads, private messages and many more.
|
138
138
|
email:
|
@@ -627,6 +627,7 @@ files:
|
|
627
627
|
- base/db/migrate/20111221103509_add_language_field.rb
|
628
628
|
- base/db/migrate/20120103103125_add_channels.rb
|
629
629
|
- base/db/migrate/20120109081509_update_notify_permissions.rb
|
630
|
+
- base/db/migrate/20120111120920_remove_language_default.rb
|
630
631
|
- base/lib/acts_as_taggable_on/acts_as_taggable_on/dirty.rb
|
631
632
|
- base/lib/acts_as_taggable_on/social_stream.rb
|
632
633
|
- base/lib/generators/social_stream/base/install_generator.rb
|