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 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: 370px;
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: 64px;
42
- height: 64px;
51
+ width: 48px;
52
+ height: 48px;
43
53
  float: left;
44
- margin: 5px;
54
+ margin: 4px;
45
55
  }
46
56
  #contacts_grid .actor.focused {
47
- border: 2px solid #00F;
48
- background-color: #006;
49
- margin: 3px;
57
+ border: 2px solid $main-color;
58
+ margin: 0px;
50
59
  }
51
60
  #contacts_grid .actor img {
52
- width: 64px;
53
- height: 64px;
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: 0 5px 0 5px !important; float: right; }
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
- current_user.language = lang[0..1]
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 }.tap do |hash|
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 left center;margin-left:2px;" } %>
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">
@@ -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"
@@ -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
 
@@ -0,0 +1,9 @@
1
+ class RemoveLanguageDefault < ActiveRecord::Migration
2
+ def up
3
+ change_column_default('users', 'language', nil)
4
+ end
5
+
6
+ def down
7
+ change_column_default('users', 'language', 'en')
8
+ end
9
+ end
@@ -1,5 +1,5 @@
1
1
  module SocialStream
2
2
  module Base
3
- VERSION = "0.12.0".freeze
3
+ VERSION = "0.12.1".freeze
4
4
  end
5
5
  end
@@ -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.new? && resource || current_subject
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
- logo = Dir[File.join(LOGOS_PATH, klass.to_s.tableize, "#{ i.id }.*")].first
45
- avatar = Dir[File.join(LOGOS_PATH, klass.to_s.tableize, "#{ i.id }.*")].first
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(relations).random.id)
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.1.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
  }
@@ -1,3 +1,3 @@
1
1
  module SocialStream
2
- VERSION = "0.17.0".freeze
2
+ VERSION = "0.17.1".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.12.0')
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.0
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-11 00:00:00.000000000Z
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: &70413200 !ruby/object:Gem::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.0
22
+ version: 0.12.1
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70413200
25
+ version_requirements: *80375130
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: social_stream-documents
28
- requirement: &70412910 !ruby/object:Gem::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: *70412910
36
+ version_requirements: *81047060
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: social_stream-events
39
- requirement: &70412610 !ruby/object:Gem::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: *70412610
47
+ version_requirements: *81455940
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: social_stream-linkser
50
- requirement: &70412250 !ruby/object:Gem::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: *70412250
58
+ version_requirements: *81467210
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: social_stream-presence
61
- requirement: &70411770 !ruby/object:Gem::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: *70411770
69
+ version_requirements: *81470040
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: capybara
72
- requirement: &70411290 !ruby/object:Gem::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: *70411290
80
+ version_requirements: *81471880
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: sqlite3
83
- requirement: &70410410 !ruby/object:Gem::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: *70410410
91
+ version_requirements: *81473830
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: rspec-rails
94
- requirement: &70409910 !ruby/object:Gem::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: *70409910
102
+ version_requirements: *82029890
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: factory_girl
105
- requirement: &70409500 !ruby/object:Gem::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: *70409500
113
+ version_requirements: *83136780
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: forgery
116
- requirement: &70408970 !ruby/object:Gem::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: *70408970
124
+ version_requirements: *83519560
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: ci_reporter
127
- requirement: &70400070 !ruby/object:Gem::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: *70400070
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