Merge branch 'master' into follow
Conflicts: features/step_definitions/user_steps.rb
This commit is contained in:
commit
775e7b6b2b
21 changed files with 173 additions and 57 deletions
8
Gemfile
8
Gemfile
|
|
@ -8,10 +8,10 @@ gem 'bundler', '>= 1.0.0'
|
||||||
gem 'chef', '0.9.12', :require => false
|
gem 'chef', '0.9.12', :require => false
|
||||||
gem 'ohai', '0.5.8', :require => false #Chef dependency
|
gem 'ohai', '0.5.8', :require => false #Chef dependency
|
||||||
|
|
||||||
gem 'nokogiri', '1.4.3.1'
|
gem 'nokogiri'
|
||||||
|
|
||||||
#Security
|
#Security
|
||||||
gem 'devise', '1.3.1'
|
gem 'devise', '~> 1.3.1'
|
||||||
gem 'devise_invitable', '0.5.0'
|
gem 'devise_invitable', '0.5.0'
|
||||||
|
|
||||||
#Authentication
|
#Authentication
|
||||||
|
|
@ -61,7 +61,7 @@ gem 'SystemTimer', '1.2.1' unless RUBY_VERSION.include? '1.9' || RUBY_PLATFORM =
|
||||||
group :development do
|
group :development do
|
||||||
gem 'capistrano', '2.5.19', :require => false
|
gem 'capistrano', '2.5.19', :require => false
|
||||||
gem 'capistrano-ext', '1.2.1', :require => false
|
gem 'capistrano-ext', '1.2.1', :require => false
|
||||||
gem 'sod', :git => "git://github.com/MikeSofaer/sod.git"
|
gem 'sod', :git => "git://github.com/MikeSofaer/sod.git", :require => false
|
||||||
end
|
end
|
||||||
|
|
||||||
group :test, :development do
|
group :test, :development do
|
||||||
|
|
@ -80,7 +80,7 @@ group :test do
|
||||||
gem 'cucumber-rails', '0.3.2'
|
gem 'cucumber-rails', '0.3.2'
|
||||||
gem 'rspec', '>= 2.0.0'
|
gem 'rspec', '>= 2.0.0'
|
||||||
gem 'rspec-rails', '>= 2.0.0'
|
gem 'rspec-rails', '>= 2.0.0'
|
||||||
gem 'rcov'
|
gem 'rcov', :require => false
|
||||||
gem 'database_cleaner', '0.6.0'
|
gem 'database_cleaner', '0.6.0'
|
||||||
gem 'webmock', :require => false
|
gem 'webmock', :require => false
|
||||||
gem 'jasmine', :path => 'vendor/gems/jasmine', :require => false
|
gem 'jasmine', :path => 'vendor/gems/jasmine', :require => false
|
||||||
|
|
|
||||||
28
Gemfile.lock
28
Gemfile.lock
|
|
@ -156,9 +156,9 @@ GEM
|
||||||
cucumber-rails (0.3.2)
|
cucumber-rails (0.3.2)
|
||||||
cucumber (>= 0.8.0)
|
cucumber (>= 0.8.0)
|
||||||
culerity (0.2.15)
|
culerity (0.2.15)
|
||||||
daemons (1.1.2)
|
daemons (1.1.3)
|
||||||
database_cleaner (0.6.0)
|
database_cleaner (0.6.0)
|
||||||
devise (1.3.1)
|
devise (1.3.4)
|
||||||
bcrypt-ruby (~> 2.1.2)
|
bcrypt-ruby (~> 2.1.2)
|
||||||
orm_adapter (~> 0.0.3)
|
orm_adapter (~> 0.0.3)
|
||||||
warden (~> 1.0.3)
|
warden (~> 1.0.3)
|
||||||
|
|
@ -185,7 +185,7 @@ GEM
|
||||||
fastthread (1.0.7)
|
fastthread (1.0.7)
|
||||||
ffi (0.6.3)
|
ffi (0.6.3)
|
||||||
rake (>= 0.8.7)
|
rake (>= 0.8.7)
|
||||||
fixture_builder (0.2.0)
|
fixture_builder (0.2.2)
|
||||||
fog (0.3.25)
|
fog (0.3.25)
|
||||||
builder
|
builder
|
||||||
excon (>= 0.2.4)
|
excon (>= 0.2.4)
|
||||||
|
|
@ -202,12 +202,12 @@ GEM
|
||||||
rspec (~> 2.0)
|
rspec (~> 2.0)
|
||||||
rspec-instafail (~> 0.1.4)
|
rspec-instafail (~> 0.1.4)
|
||||||
gem_plugin (0.2.3)
|
gem_plugin (0.2.3)
|
||||||
gherkin (2.3.6)
|
gherkin (2.3.8)
|
||||||
json (>= 1.4.6)
|
json (>= 1.4.6)
|
||||||
haml (3.0.25)
|
haml (3.0.25)
|
||||||
hashie (0.4.0)
|
hashie (0.4.0)
|
||||||
highline (1.6.1)
|
highline (1.6.2)
|
||||||
http_connection (1.4.0)
|
http_connection (1.4.1)
|
||||||
i18n (0.5.0)
|
i18n (0.5.0)
|
||||||
i18n-inflector (2.5.1)
|
i18n-inflector (2.5.1)
|
||||||
i18n (>= 0.4.1)
|
i18n (>= 0.4.1)
|
||||||
|
|
@ -224,7 +224,7 @@ GEM
|
||||||
configuration (>= 0.0.5)
|
configuration (>= 0.0.5)
|
||||||
rake (>= 0.8.1)
|
rake (>= 0.8.1)
|
||||||
linecache (0.43)
|
linecache (0.43)
|
||||||
mail (2.2.15)
|
mail (2.2.19)
|
||||||
activesupport (>= 2.3.6)
|
activesupport (>= 2.3.6)
|
||||||
i18n (>= 0.4.0)
|
i18n (>= 0.4.0)
|
||||||
mime-types (~> 1.16)
|
mime-types (~> 1.16)
|
||||||
|
|
@ -245,7 +245,7 @@ GEM
|
||||||
gem_plugin (>= 0.2.3)
|
gem_plugin (>= 0.2.3)
|
||||||
multi_json (0.0.5)
|
multi_json (0.0.5)
|
||||||
multi_xml (0.2.2)
|
multi_xml (0.2.2)
|
||||||
multipart-post (1.1.0)
|
multipart-post (1.1.1)
|
||||||
mysql2 (0.2.6)
|
mysql2 (0.2.6)
|
||||||
net-ldap (0.1.1)
|
net-ldap (0.1.1)
|
||||||
net-scp (1.0.4)
|
net-scp (1.0.4)
|
||||||
|
|
@ -253,7 +253,7 @@ GEM
|
||||||
net-sftp (2.0.5)
|
net-sftp (2.0.5)
|
||||||
net-ssh (>= 2.0.9)
|
net-ssh (>= 2.0.9)
|
||||||
net-ssh (2.0.24)
|
net-ssh (2.0.24)
|
||||||
net-ssh-gateway (1.0.1)
|
net-ssh-gateway (1.1.0)
|
||||||
net-ssh (>= 1.99.1)
|
net-ssh (>= 1.99.1)
|
||||||
nokogiri (1.4.3.1)
|
nokogiri (1.4.3.1)
|
||||||
oa-basic (0.1.6)
|
oa-basic (0.1.6)
|
||||||
|
|
@ -366,8 +366,8 @@ GEM
|
||||||
ffi (~> 0.6.3)
|
ffi (~> 0.6.3)
|
||||||
json_pure
|
json_pure
|
||||||
rubyzip
|
rubyzip
|
||||||
simple_oauth (0.1.4)
|
simple_oauth (0.1.5)
|
||||||
sinatra (1.2.3)
|
sinatra (1.2.6)
|
||||||
rack (~> 1.1)
|
rack (~> 1.1)
|
||||||
tilt (< 2.0, >= 1.2.2)
|
tilt (< 2.0, >= 1.2.2)
|
||||||
subexec (0.0.4)
|
subexec (0.0.4)
|
||||||
|
|
@ -378,7 +378,7 @@ GEM
|
||||||
eventmachine (>= 0.12.6)
|
eventmachine (>= 0.12.6)
|
||||||
rack (>= 1.0.0)
|
rack (>= 1.0.0)
|
||||||
thor (0.14.6)
|
thor (0.14.6)
|
||||||
tilt (1.2.2)
|
tilt (1.3)
|
||||||
treetop (1.4.9)
|
treetop (1.4.9)
|
||||||
polyglot (>= 0.3.1)
|
polyglot (>= 0.3.1)
|
||||||
typhoeus (0.2.4)
|
typhoeus (0.2.4)
|
||||||
|
|
@ -415,7 +415,7 @@ DEPENDENCIES
|
||||||
cloudfiles (= 1.4.10)
|
cloudfiles (= 1.4.10)
|
||||||
cucumber-rails (= 0.3.2)
|
cucumber-rails (= 0.3.2)
|
||||||
database_cleaner (= 0.6.0)
|
database_cleaner (= 0.6.0)
|
||||||
devise (= 1.3.1)
|
devise (~> 1.3.1)
|
||||||
devise_invitable (= 0.5.0)
|
devise_invitable (= 0.5.0)
|
||||||
em-websocket!
|
em-websocket!
|
||||||
excon (= 0.2.4)
|
excon (= 0.2.4)
|
||||||
|
|
@ -435,7 +435,7 @@ DEPENDENCIES
|
||||||
mini_magick (= 3.2)
|
mini_magick (= 3.2)
|
||||||
mongrel
|
mongrel
|
||||||
mysql2 (= 0.2.6)
|
mysql2 (= 0.2.6)
|
||||||
nokogiri (= 1.4.3.1)
|
nokogiri
|
||||||
ohai (= 0.5.8)
|
ohai (= 0.5.8)
|
||||||
omniauth (= 0.1.6)
|
omniauth (= 0.1.6)
|
||||||
rails (= 3.0.3)
|
rails (= 3.0.3)
|
||||||
|
|
|
||||||
|
|
@ -42,10 +42,10 @@ See [here](http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg39091.
|
||||||
for when to rebase.
|
for when to rebase.
|
||||||
|
|
||||||
We need you to fill out a
|
We need you to fill out a
|
||||||
[contributor agreement form](https://spreadsheets.google.com/a/joindiaspora.com/viewform?formkey=dGI2cHA3ZnNHLTJvbm10LUhXRTJjR0E6MQ&theme=0AX42CRMsmRFbUy1iOGYwN2U2Mi1hNWU0LTRlNjEtYWMyOC1lZmU4ODg1ODc1ODI&ifq)
|
[contributor agreement form](https://spreadsheets.google.com/a/joindiaspora.com/spreadsheet/viewform?formkey=dFdRTnY0TGtfaklKQXZNUndsMlJ2eGc6MQ)
|
||||||
before we can accept your patches. The agreement gives Diaspora joint
|
before we can accept your patches. The agreement gives Diaspora joint
|
||||||
ownership of the patch so the copyright isn't scattered. You can find it
|
ownership of the patch so the copyright isn't scattered. You can find it
|
||||||
[here](https://spreadsheets.google.com/a/joindiaspora.com/viewform?formkey=dGI2cHA3ZnNHLTJvbm10LUhXRTJjR0E6MQ&theme=0AX42CRMsmRFbUy1iOGYwN2U2Mi1hNWU0LTRlNjEtYWMyOC1lZmU4ODg1ODc1ODI&ifq).
|
[here](https://spreadsheets.google.com/a/joindiaspora.com/spreadsheet/viewform?formkey=dFdRTnY0TGtfaklKQXZNUndsMlJ2eGc6MQ).
|
||||||
We're currently working on revising it more details on what we're going for can be found [here](http://blog.joindiaspora.com/licensing.html).
|
We're currently working on revising it more details on what we're going for can be found [here](http://blog.joindiaspora.com/licensing.html).
|
||||||
|
|
||||||
## Resources
|
## Resources
|
||||||
|
|
@ -73,4 +73,4 @@ Also, be sure to join the official [mailing list](http://eepurl.com/Vebk).
|
||||||
|
|
||||||
If you wish to contact us privately about any exploits in Diaspora you may
|
If you wish to contact us privately about any exploits in Diaspora you may
|
||||||
find, you can email
|
find, you can email
|
||||||
[exploits@joindiaspora.com](mailto:exploits@joindiaspora.com), [corresponding public key (keyID: 77485064)](http://pgp.mit.edu:11371/pks/lookup?op=vindex&search=0xCC6CAED977485064).
|
[exploits@joindiaspora.com](mailto:exploits@joindiaspora.com), [corresponding public key (keyID: 77485064)](http://pgp.mit.edu:11371/pks/lookup?op=vindex&search=0xCC6CAED977485064).
|
||||||
|
|
|
||||||
|
|
@ -103,4 +103,8 @@ class ApplicationController < ActionController::Base
|
||||||
def grammatical_gender
|
def grammatical_gender
|
||||||
@grammatical_gender || nil
|
@grammatical_gender || nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def after_sign_in_path_for(resource)
|
||||||
|
stored_location_for(:user) || aspects_path(:a_ids => current_user.aspects.where(:open => true).select(:id).all.map{|a| a.id})
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,13 @@
|
||||||
-# licensed under the Affero General Public License version 3 or later. See
|
-# licensed under the Affero General Public License version 3 or later. See
|
||||||
-# the COPYRIGHT file.
|
-# the COPYRIGHT file.
|
||||||
|
|
||||||
:javascript
|
-if AppConfig[:single_process_mode]
|
||||||
WebSocket.__swfLocation = "#{javascript_path 'vendor/WebSocketMain.swf'}";
|
:javascript
|
||||||
$(document).ready(function(){
|
var websocket_enabled = false
|
||||||
WSR.initialize("#{(AppConfig[:socket_secure])?'wss':'ws'}://#{request.host}:#{AppConfig[:socket_port]}/");
|
- else
|
||||||
});
|
:javascript
|
||||||
|
var websocket_enabled = true
|
||||||
|
WebSocket.__swfLocation = "#{javascript_path 'vendor/WebSocketMain.swf'}";
|
||||||
|
$(document).ready(function(){
|
||||||
|
WSR.initialize("#{(AppConfig[:socket_secure])?'wss':'ws'}://#{request.host}:#{AppConfig[:socket_port]}/");
|
||||||
|
});
|
||||||
|
|
|
||||||
|
|
@ -96,6 +96,9 @@ default:
|
||||||
# It is false by default in development and test.
|
# It is false by default in development and test.
|
||||||
enable_splunk_logging: true
|
enable_splunk_logging: true
|
||||||
|
|
||||||
|
# Process jobs in process?
|
||||||
|
single_process_mode: true
|
||||||
|
|
||||||
development:
|
development:
|
||||||
enable_splunk_logging: false
|
enable_splunk_logging: false
|
||||||
|
|
||||||
|
|
@ -105,3 +108,4 @@ test:
|
||||||
enable_splunk_logging: false
|
enable_splunk_logging: false
|
||||||
|
|
||||||
production:
|
production:
|
||||||
|
single_process_mode: false
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,20 @@
|
||||||
require File.join(Rails.root, 'app', 'models', 'jobs', 'base')
|
require File.join(Rails.root, 'app', 'models', 'jobs', 'base')
|
||||||
Dir[File.join(Rails.root, 'app', 'models', 'jobs', '*.rb')].each { |file| require file }
|
Dir[File.join(Rails.root, 'app', 'models', 'jobs', '*.rb')].each { |file| require file }
|
||||||
#config = YAML::load(File.open("#{Rails.root}/config/redis.yml"))
|
|
||||||
#Resque.redis = Redis.new(:host => config['host'], :port => config['port'])
|
|
||||||
require 'resque'
|
require 'resque'
|
||||||
|
|
||||||
|
begin
|
||||||
|
if AppConfig[:single_process_mode]
|
||||||
|
if Rails.env == 'production'
|
||||||
|
puts "WARNING: You are running Diaspora in production without Resque workers turned on. Please don't do this."
|
||||||
|
end
|
||||||
|
|
||||||
|
module Resque
|
||||||
|
def enqueue(klass, *args)
|
||||||
|
klass.send(:perform, *args)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
rescue
|
||||||
|
nil
|
||||||
|
end
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
# Included by script/server
|
# Included by script/server
|
||||||
#
|
#
|
||||||
THIN_PORT=3000
|
THIN_PORT=3000
|
||||||
SOCKET_PORT=8080
|
|
||||||
|
|
||||||
# Choose one mode by uncommenting
|
# Choose one mode by uncommenting
|
||||||
export RAILS_ENV='development'
|
export RAILS_ENV='development'
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended to check this file into your version control system.
|
# It's strongly recommended to check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(:version => 20110514182918) do
|
ActiveRecord::Schema.define(:version => 20110517180148) do
|
||||||
|
|
||||||
create_table "aspect_memberships", :force => true do |t|
|
create_table "aspect_memberships", :force => true do |t|
|
||||||
t.integer "aspect_id", :null => false
|
t.integer "aspect_id", :null => false
|
||||||
|
|
|
||||||
|
|
@ -14,3 +14,16 @@ Feature: Change password
|
||||||
Then I should be on the new user session page
|
Then I should be on the new user session page
|
||||||
When I sign in with password "newsecret"
|
When I sign in with password "newsecret"
|
||||||
Then I should be on the aspects page
|
Then I should be on the aspects page
|
||||||
|
|
||||||
|
Scenario: Reset my password
|
||||||
|
Given a user with email "forgetful@users.net"
|
||||||
|
Given I am on the new user password page
|
||||||
|
And I fill in "Email" with "forgetful@users.net"
|
||||||
|
And I press "Send me reset password instructions"
|
||||||
|
Then I should see "You will receive an email with instructions"
|
||||||
|
And I follow the "Change my password" link from the Devise.mailer
|
||||||
|
Then I should see "Change your password"
|
||||||
|
And I fill in "Password" with "supersecret"
|
||||||
|
And I fill in "Password confirmation" with "supersecret"
|
||||||
|
And I press "Change my password"
|
||||||
|
Then I should see "Your password was changed successfully"
|
||||||
|
|
|
||||||
|
|
@ -187,3 +187,11 @@ When /^I add the person to a new aspect called "([^\"]*)"$/ do |aspect_name|
|
||||||
And I press the first ".toggle.button"
|
And I press the first ".toggle.button"
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
And /^I follow the "([^\"]*)" link from the Devise.mailer$/ do |link_text|
|
||||||
|
doc = Nokogiri(Devise.mailer.deliveries.first.body.to_s)
|
||||||
|
links = doc.css('a')
|
||||||
|
link = links.detect{ |link| link.text == link_text }
|
||||||
|
path = link.attributes["href"].value
|
||||||
|
visit URI::parse(path).request_uri
|
||||||
|
end
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@ include HelperMethods
|
||||||
|
|
||||||
Before do
|
Before do
|
||||||
DatabaseCleaner.clean
|
DatabaseCleaner.clean
|
||||||
|
Devise.mailer.deliveries = []
|
||||||
end
|
end
|
||||||
|
|
||||||
silence_warnings do
|
silence_warnings do
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (c) 2010, Diaspora Inc. This file is
|
# Copyright (c) 2011, Diaspora Inc. This file is
|
||||||
# licensed under the Affero General Public License version 3 or later. See
|
# licensed under the Affero General Public License version 3 or later. See
|
||||||
# the COPYRIGHT file.
|
# the COPYRIGHT file.
|
||||||
|
|
||||||
|
|
@ -14,6 +14,10 @@ class AppConfig
|
||||||
config_vars[key] = value
|
config_vars[key] = value
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.has_key?(key)
|
||||||
|
config_vars.has_key?(key)
|
||||||
|
end
|
||||||
|
|
||||||
def self.configure_for_environment(env)
|
def self.configure_for_environment(env)
|
||||||
load_config_for_environment(env)
|
load_config_for_environment(env)
|
||||||
generate_pod_uri
|
generate_pod_uri
|
||||||
|
|
|
||||||
|
|
@ -60,11 +60,19 @@ module Diaspora
|
||||||
|
|
||||||
module Socketable
|
module Socketable
|
||||||
def socket_to_user(user_or_id, opts={})
|
def socket_to_user(user_or_id, opts={})
|
||||||
SocketsController.new.outgoing(user_or_id, self, opts)
|
begin
|
||||||
|
SocketsController.new.outgoing(user_or_id, self, opts)
|
||||||
|
rescue
|
||||||
|
nil
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def unsocket_from_user(user_or_id, opts={})
|
def unsocket_from_user(user_or_id, opts={})
|
||||||
SocketsController.new.outgoing(user_or_id, Retraction.for(self), opts)
|
begin
|
||||||
|
SocketsController.new.outgoing(user_or_id, Retraction.for(self), opts)
|
||||||
|
rescue
|
||||||
|
nil
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -6,14 +6,16 @@ var WebSocketReceiver = {
|
||||||
//Attach onmessage to websocket
|
//Attach onmessage to websocket
|
||||||
ws.onmessage = WSR.onMessage;
|
ws.onmessage = WSR.onMessage;
|
||||||
ws.onclose = function() {
|
ws.onclose = function() {
|
||||||
Diaspora.widgets.notifications.showNotification({
|
if (websocket_enabled) {
|
||||||
html: '<div class="notification">' +
|
Diaspora.widgets.notifications.showNotification({
|
||||||
Diaspora.widgets.i18n.t("web_sockets.disconnected") +
|
html: '<div class="notification">' +
|
||||||
'</div>',
|
Diaspora.widgets.i18n.t("web_sockets.disconnected") +
|
||||||
incrementCount: false
|
'</div>',
|
||||||
});
|
incrementCount: false
|
||||||
|
});
|
||||||
|
|
||||||
WSR.debug("socket closed");
|
WSR.debug("socket closed");
|
||||||
|
}
|
||||||
};
|
};
|
||||||
ws.onopen = function() {
|
ws.onopen = function() {
|
||||||
ws.send(location.pathname);
|
ws.send(location.pathname);
|
||||||
|
|
|
||||||
42
script/get_config.rb
Executable file
42
script/get_config.rb
Executable file
|
|
@ -0,0 +1,42 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
# Copyright (c) 2011, Diaspora Inc. This file is
|
||||||
|
# licensed under the Affero General Public License version 3 or later. See
|
||||||
|
# the COPYRIGHT file.
|
||||||
|
|
||||||
|
require 'rubygems'
|
||||||
|
require 'yaml'
|
||||||
|
|
||||||
|
require 'active_support/core_ext/class/attribute_accessors'
|
||||||
|
require 'active_support/core_ext/hash/keys'
|
||||||
|
|
||||||
|
class Rails
|
||||||
|
def self.root
|
||||||
|
File.join(File.dirname(__FILE__), "..")
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.env
|
||||||
|
env = 'development'
|
||||||
|
env = ENV['RAILS_ENV'] if ENV.has_key?('RAILS_ENV')
|
||||||
|
env = ARGV[1] if ARGV.length == 2
|
||||||
|
env.downcase
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
require File.join(Rails.root, 'lib', 'app_config')
|
||||||
|
|
||||||
|
|
||||||
|
if ARGV.length >= 1
|
||||||
|
key = ARGV[0].to_sym
|
||||||
|
AppConfig.configure_for_environment(Rails.env)
|
||||||
|
if AppConfig.has_key?(key)
|
||||||
|
print AppConfig[key]
|
||||||
|
else
|
||||||
|
puts "Invalid option #{ARGV[0]}"
|
||||||
|
exit 2
|
||||||
|
end
|
||||||
|
else
|
||||||
|
puts "Usage: ./script/get_config.rb option [environment]"
|
||||||
|
puts ""
|
||||||
|
puts "envrionment defaults to development"
|
||||||
|
exit 1
|
||||||
|
end
|
||||||
|
|
@ -10,6 +10,7 @@ OS=`uname -s`
|
||||||
|
|
||||||
[ -e config/server.sh ] && source config/server.sh
|
[ -e config/server.sh ] && source config/server.sh
|
||||||
|
|
||||||
|
export SOCKET_PORT=$(./script/get_config.rb socket_port $RAILS_ENV)
|
||||||
|
|
||||||
function init_public
|
function init_public
|
||||||
# Create all dynamically generated files in public/ folder
|
# Create all dynamically generated files in public/ folder
|
||||||
|
|
@ -121,10 +122,6 @@ if [ -n "$services" ]; then
|
||||||
exit 64
|
exit 64
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
redis_config
|
|
||||||
|
|
||||||
|
|
||||||
# Force AGPL
|
# Force AGPL
|
||||||
if [ -w public -a ! -e public/source.tar.gz ]; then
|
if [ -w public -a ! -e public/source.tar.gz ]; then
|
||||||
branch=$( git branch | awk '/^[*]/ {print $2}')
|
branch=$( git branch | awk '/^[*]/ {print $2}')
|
||||||
|
|
@ -169,7 +166,12 @@ if [ ! -e 'public/assets/default.css' ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p -v log/thin/
|
mkdir -p -v log/thin/
|
||||||
bundle exec ruby ./script/websocket_server.rb&
|
if [ "$(./script/get_config.rb single_process_mode $RAILS_ENV)" = "false" ]; then
|
||||||
redis-server config/redis.conf &>log/redis-console.log &
|
redis_config
|
||||||
QUEUE=* bundle exec rake resque:work&
|
redis-server config/redis.conf &>log/redis-console.log &
|
||||||
|
|
||||||
|
QUEUE=* bundle exec rake resque:work&
|
||||||
|
|
||||||
|
bundle exec ruby ./script/websocket_server.rb&
|
||||||
|
fi
|
||||||
bundle exec thin start $args
|
bundle exec thin start $args
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ begin
|
||||||
|
|
||||||
debug_pp cookie
|
debug_pp cookie
|
||||||
|
|
||||||
user_id = cookie["warden.user.user.key"].last
|
user_id = cookie["warden.user.user.key"][1].first
|
||||||
|
|
||||||
debug_pp "In WSS, suscribing user: #{User.find(user_id).name} with id: #{user_id}"
|
debug_pp "In WSS, suscribing user: #{User.find(user_id).name} with id: #{user_id}"
|
||||||
sid = Diaspora::WebSocket.subscribe(user_id, ws)
|
sid = Diaspora::WebSocket.subscribe(user_id, ws)
|
||||||
|
|
|
||||||
|
|
@ -63,9 +63,10 @@ describe RegistrationsController do
|
||||||
flash[:notice].should_not be_empty
|
flash[:notice].should_not be_empty
|
||||||
end
|
end
|
||||||
|
|
||||||
it "redirects to the root path" do
|
it "redirects to the home path" do
|
||||||
get :create, @valid_params
|
get :create, @valid_params
|
||||||
response.should redirect_to root_path
|
response.should be_redirect
|
||||||
|
response.location.should match /^#{aspects_url}\??$/
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -99,4 +100,4 @@ describe RegistrationsController do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -24,15 +24,17 @@ describe SessionsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#create" do
|
describe "#create" do
|
||||||
it "redirects to / for a non-mobile user" do
|
it "redirects to /aspects for a non-mobile user" do
|
||||||
post :create, {"user" => {"remember_me" => "0", "username" => @user.username, "password" => "evankorth"}}
|
post :create, {"user" => {"remember_me" => "0", "username" => @user.username, "password" => "evankorth"}}
|
||||||
response.should redirect_to root_path
|
response.should be_redirect
|
||||||
|
response.location.should match /^#{aspects_url}\??$/
|
||||||
end
|
end
|
||||||
|
|
||||||
it "redirects to / for a mobile user" do
|
it "redirects to /aspects for a mobile user" do
|
||||||
@request.env['HTTP_USER_AGENT'] = 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7'
|
@request.env['HTTP_USER_AGENT'] = 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7'
|
||||||
post :create, {"user" => {"remember_me" => "0", "username" => @user.username, "password" => "evankorth"}}
|
post :create, {"user" => {"remember_me" => "0", "username" => @user.username, "password" => "evankorth"}}
|
||||||
response.should redirect_to root_path
|
response.should be_redirect
|
||||||
|
response.location.should match /^#{aspects_url}\??$/
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'queues up an update job' do
|
it 'queues up an update job' do
|
||||||
|
|
@ -59,4 +61,4 @@ describe SessionsController do
|
||||||
response.should redirect_to root_path
|
response.should redirect_to root_path
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -63,4 +63,11 @@ describe Diaspora::Socketable do
|
||||||
Diaspora::WebSocket.should_receive(:queue_to_user)
|
Diaspora::WebSocket.should_receive(:queue_to_user)
|
||||||
@post.socket_to_user(@user, :aspect_ids => @aspect.id)
|
@post.socket_to_user(@user, :aspect_ids => @aspect.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'no-ops if redis isnt present' do
|
||||||
|
Diaspora::WebSocket.stub(:redis).and_return(nil)
|
||||||
|
lambda {
|
||||||
|
@post.socket_to_user(@user, :aspect_ids => @aspect.id)
|
||||||
|
}.should_not raise_error
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue