devise 1.0.11 → 1.1.pre

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of devise might be problematic. Click here for more details.

Files changed (121) hide show
  1. data/CHANGELOG.rdoc +6 -72
  2. data/Gemfile +18 -0
  3. data/README.rdoc +51 -46
  4. data/Rakefile +5 -4
  5. data/app/controllers/{confirmations_controller.rb → devise/confirmations_controller.rb} +2 -2
  6. data/app/controllers/{passwords_controller.rb → devise/passwords_controller.rb} +4 -3
  7. data/app/controllers/{registrations_controller.rb → devise/registrations_controller.rb} +11 -7
  8. data/app/controllers/{sessions_controller.rb → devise/sessions_controller.rb} +11 -8
  9. data/app/controllers/{unlocks_controller.rb → devise/unlocks_controller.rb} +2 -10
  10. data/app/models/devise/mailer.rb +55 -0
  11. data/app/views/{confirmations → devise/confirmations}/new.html.erb +1 -1
  12. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  13. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  14. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  15. data/app/views/{passwords → devise/passwords}/edit.html.erb +1 -1
  16. data/app/views/{passwords → devise/passwords}/new.html.erb +1 -1
  17. data/app/views/{registrations → devise/registrations}/edit.html.erb +1 -1
  18. data/app/views/{registrations → devise/registrations}/new.html.erb +1 -1
  19. data/app/views/{sessions → devise/sessions}/new.html.erb +1 -1
  20. data/app/views/{shared/_devise_links.erb → devise/shared/_links.erb} +0 -0
  21. data/app/views/{unlocks → devise/unlocks}/new.html.erb +1 -1
  22. data/{lib/devise → config}/locales/en.yml +7 -1
  23. data/lib/devise.rb +6 -29
  24. data/lib/devise/controllers/helpers.rb +16 -43
  25. data/lib/devise/controllers/internal_helpers.rb +10 -36
  26. data/lib/devise/controllers/scoped_views.rb +35 -0
  27. data/lib/devise/failure_app.rb +7 -14
  28. data/lib/devise/hooks/rememberable.rb +3 -6
  29. data/lib/devise/hooks/trackable.rb +1 -1
  30. data/lib/devise/mapping.rb +17 -18
  31. data/lib/devise/models.rb +4 -20
  32. data/lib/devise/models/{database_authenticatable.rb → authenticatable.rb} +16 -28
  33. data/lib/devise/models/confirmable.rb +25 -23
  34. data/lib/devise/models/http_authenticatable.rb +3 -7
  35. data/lib/devise/models/lockable.rb +40 -35
  36. data/lib/devise/models/recoverable.rb +4 -8
  37. data/lib/devise/models/rememberable.rb +6 -9
  38. data/lib/devise/models/timeoutable.rb +1 -3
  39. data/lib/devise/models/token_authenticatable.rb +4 -5
  40. data/lib/devise/models/validatable.rb +10 -1
  41. data/lib/devise/orm/mongo_mapper.rb +10 -23
  42. data/lib/devise/rails.rb +11 -9
  43. data/lib/devise/rails/routes.rb +113 -107
  44. data/lib/devise/rails/warden_compat.rb +3 -41
  45. data/lib/devise/schema.rb +13 -21
  46. data/lib/devise/strategies/{database_authenticatable.rb → authenticatable.rb} +3 -3
  47. data/lib/devise/strategies/http_authenticatable.rb +4 -22
  48. data/lib/devise/test_helpers.rb +1 -8
  49. data/lib/devise/version.rb +1 -1
  50. data/lib/generators/devise/devise_generator.rb +57 -0
  51. data/{generators → lib/generators}/devise/templates/migration.rb +1 -1
  52. data/lib/generators/devise_install/devise_install_generator.rb +25 -0
  53. data/{generators → lib/generators}/devise_install/templates/README +4 -8
  54. data/{generators → lib/generators}/devise_install/templates/devise.rb +0 -3
  55. data/lib/generators/devise_views/devise_views_generator.rb +11 -0
  56. data/test/controllers/helpers_test.rb +15 -9
  57. data/test/devise_test.rb +1 -6
  58. data/test/encryptors_test.rb +0 -3
  59. data/test/failure_app_test.rb +6 -1
  60. data/test/integration/authenticatable_test.rb +25 -85
  61. data/test/integration/http_authenticatable_test.rb +2 -10
  62. data/test/integration/lockable_test.rb +3 -22
  63. data/test/integration/recoverable_test.rb +1 -1
  64. data/test/integration/registerable_test.rb +31 -36
  65. data/test/integration/rememberable_test.rb +6 -24
  66. data/test/integration/token_authenticatable_test.rb +2 -4
  67. data/test/integration/trackable_test.rb +1 -1
  68. data/test/mailers/confirmation_instructions_test.rb +4 -10
  69. data/test/mailers/unlock_instructions_test.rb +1 -1
  70. data/test/mapping_test.rb +12 -24
  71. data/test/models/authenticatable_test.rb +3 -3
  72. data/test/models/confirmable_test.rb +29 -29
  73. data/test/models/http_authenticatable_test.rb +19 -0
  74. data/test/models/lockable_test.rb +45 -44
  75. data/test/models/recoverable_test.rb +7 -7
  76. data/test/models/rememberable_test.rb +7 -10
  77. data/test/models/validatable_test.rb +19 -24
  78. data/test/models_test.rb +2 -16
  79. data/test/orm/active_record.rb +3 -4
  80. data/test/orm/mongo_mapper.rb +2 -10
  81. data/test/rails_app/app/active_record/admin.rb +1 -1
  82. data/test/rails_app/app/active_record/user.rb +3 -3
  83. data/test/rails_app/app/controllers/application_controller.rb +1 -7
  84. data/test/rails_app/app/controllers/sessions_controller.rb +6 -0
  85. data/test/rails_app/app/controllers/users_controller.rb +0 -4
  86. data/test/rails_app/app/mongo_mapper/admin.rb +4 -7
  87. data/test/rails_app/app/mongo_mapper/user.rb +5 -8
  88. data/test/rails_app/config/application.rb +32 -0
  89. data/test/rails_app/config/boot.rb +7 -108
  90. data/test/rails_app/config/environment.rb +4 -41
  91. data/test/rails_app/config/environments/development.rb +15 -13
  92. data/test/rails_app/config/environments/production.rb +25 -20
  93. data/test/rails_app/config/environments/test.rb +23 -22
  94. data/test/rails_app/config/initializers/backtrace_silencers.rb +7 -0
  95. data/test/rails_app/config/initializers/cookie_verification_secret.rb +7 -0
  96. data/test/rails_app/config/initializers/devise.rb +0 -3
  97. data/test/rails_app/config/initializers/session_store.rb +2 -2
  98. data/test/rails_app/config/routes.rb +17 -21
  99. data/test/routes_test.rb +30 -47
  100. data/test/support/{assertions_helper.rb → assertions.rb} +0 -15
  101. data/test/support/{tests_helper.rb → helpers.rb} +16 -3
  102. data/test/support/{integration_tests_helper.rb → integration.rb} +8 -4
  103. data/test/support/webrat/integrations/rails.rb +31 -0
  104. data/test/test_helper.rb +8 -7
  105. data/test/test_helpers_test.rb +9 -9
  106. metadata +53 -128
  107. data/app/models/devise_mailer.rb +0 -68
  108. data/app/views/devise_mailer/confirmation_instructions.html.erb +0 -5
  109. data/app/views/devise_mailer/reset_password_instructions.html.erb +0 -8
  110. data/app/views/devise_mailer/unlock_instructions.html.erb +0 -7
  111. data/generators/devise/USAGE +0 -5
  112. data/generators/devise/devise_generator.rb +0 -15
  113. data/generators/devise/lib/route_devise.rb +0 -32
  114. data/generators/devise/templates/model.rb +0 -9
  115. data/generators/devise_install/USAGE +0 -3
  116. data/generators/devise_install/devise_install_generator.rb +0 -15
  117. data/generators/devise_views/USAGE +0 -3
  118. data/generators/devise_views/devise_views_generator.rb +0 -21
  119. data/rails/init.rb +0 -2
  120. data/test/integration/rack_middleware_test.rb +0 -47
  121. data/test/rails_app/config/initializers/new_rails_defaults.rb +0 -24
@@ -83,7 +83,7 @@ class RecoverableTest < ActiveSupport::TestCase
83
83
  test 'should return a new record with errors if user was not found by e-mail' do
84
84
  reset_password_user = User.send_reset_password_instructions(:email => "invalid@email.com")
85
85
  assert reset_password_user.new_record?
86
- assert_match /not found/, reset_password_user.errors[:email]
86
+ assert_equal "not found", reset_password_user.errors[:email].join
87
87
  end
88
88
 
89
89
  test 'should reset reset_password_token before send the reset instructions email' do
@@ -104,20 +104,20 @@ class RecoverableTest < ActiveSupport::TestCase
104
104
  user = create_user
105
105
  user.send :generate_reset_password_token!
106
106
 
107
- reset_password_user = User.reset_password_by_token(:reset_password_token => user.reset_password_token)
107
+ reset_password_user = User.reset_password!(:reset_password_token => user.reset_password_token)
108
108
  assert_equal reset_password_user, user
109
109
  end
110
110
 
111
111
  test 'should a new record with errors if no reset_password_token is found' do
112
- reset_password_user = User.reset_password_by_token(:reset_password_token => 'invalid_token')
112
+ reset_password_user = User.reset_password!(:reset_password_token => 'invalid_token')
113
113
  assert reset_password_user.new_record?
114
- assert_match /invalid/, reset_password_user.errors[:reset_password_token]
114
+ assert_equal "is invalid", reset_password_user.errors[:reset_password_token].join
115
115
  end
116
116
 
117
117
  test 'should a new record with errors if reset_password_token is blank' do
118
- reset_password_user = User.reset_password_by_token(:reset_password_token => '')
118
+ reset_password_user = User.reset_password!(:reset_password_token => '')
119
119
  assert reset_password_user.new_record?
120
- assert_match /blank/, reset_password_user.errors[:reset_password_token]
120
+ assert_match "can't be blank", reset_password_user.errors[:reset_password_token].join
121
121
  end
122
122
 
123
123
  test 'should reset successfully user password given the new password and confirmation' do
@@ -125,7 +125,7 @@ class RecoverableTest < ActiveSupport::TestCase
125
125
  old_password = user.password
126
126
  user.send :generate_reset_password_token!
127
127
 
128
- reset_password_user = User.reset_password_by_token(
128
+ reset_password_user = User.reset_password!(
129
129
  :reset_password_token => user.reset_password_token,
130
130
  :password => 'new_password',
131
131
  :password_confirmation => 'new_password'
@@ -1,11 +1,6 @@
1
1
  require 'test/test_helper'
2
2
 
3
3
  class RememberableTest < ActiveSupport::TestCase
4
-
5
- def setup
6
- Devise.remember_for = 1
7
- end
8
-
9
4
  test 'should respond to remember_me attribute' do
10
5
  user = new_user
11
6
  assert user.respond_to?(:remember_me)
@@ -54,11 +49,13 @@ class RememberableTest < ActiveSupport::TestCase
54
49
  end
55
50
 
56
51
  test 'valid remember token should also verify if remember is not expired' do
57
- user = create_user
58
- user.remember_me!
59
- user.remember_created_at = 3.days.ago
60
- user.save
61
- assert_not user.valid_remember_token?(user.remember_token)
52
+ swap Devise, :remember_for => 1.day do
53
+ user = create_user
54
+ user.remember_me!
55
+ user.remember_created_at = 3.days.ago
56
+ user.save
57
+ assert_not user.valid_remember_token?(user.remember_token)
58
+ end
62
59
  end
63
60
 
64
61
  test 'serialize into cookie' do
@@ -7,31 +7,30 @@ class ValidatableTest < ActiveSupport::TestCase
7
7
  user = new_user(:email => nil)
8
8
  assert user.invalid?
9
9
  assert user.errors[:email]
10
- assert_equal 'can\'t be blank', user.errors[:email]
10
+ assert_equal 'can\'t be blank', user.errors[:email].join
11
11
  end
12
12
 
13
13
  test 'should require uniqueness of email, allowing blank' do
14
14
  existing_user = create_user
15
+
15
16
  user = new_user(:email => '')
16
17
  assert user.invalid?
17
- assert_not_equal 'has already been taken', user.errors[:email]
18
+ assert_not_equal 'has already been taken', user.errors[:email].join
19
+
18
20
  user.email = existing_user.email
19
21
  assert user.invalid?
20
- assert user.errors[:email]
21
- assert_equal 1, [*user.errors[:email]].size
22
- assert_equal 'has already been taken', user.errors[:email]
22
+ assert_equal 'has already been taken', user.errors[:email].join
23
23
  end
24
24
 
25
25
  test 'should require correct email format, allowing blank' do
26
26
  user = new_user(:email => '')
27
27
  assert user.invalid?
28
- assert_not_equal 'is invalid', user.errors[:email]
28
+ assert_not_equal 'is invalid', user.errors[:email].join
29
+
29
30
  %w(invalid_email_format email@invalid invalid$character@mail.com other@not 123).each do |email|
30
31
  user.email = email
31
32
  assert user.invalid?, 'should be invalid with email ' << email
32
- assert user.errors[:email]
33
- assert_equal 1, [*user.errors[:email]].size
34
- assert_equal 'is invalid', user.errors[:email]
33
+ assert_equal 'is invalid', user.errors[:email].join
35
34
  end
36
35
  end
37
36
 
@@ -39,63 +38,59 @@ class ValidatableTest < ActiveSupport::TestCase
39
38
  %w(a.b.c@example.com test_mail@gmail.com any@any.net email@test.br 123@mail.test).each do |email|
40
39
  user = new_user(:email => email)
41
40
  assert user.valid?, 'should be valid with email ' << email
42
- assert_nil user.errors[:email]
41
+ assert_blank user.errors[:email]
43
42
  end
44
43
  end
45
44
 
46
45
  test 'should require password to be set when creating a new record' do
47
46
  user = new_user(:password => '', :password_confirmation => '')
48
47
  assert user.invalid?
49
- assert user.errors[:password]
50
- assert_equal 'can\'t be blank', user.errors[:password]
48
+ assert_equal 'can\'t be blank', user.errors[:password].join
51
49
  end
52
50
 
53
51
  test 'should require confirmation to be set when creating a new record' do
54
52
  user = new_user(:password => 'new_password', :password_confirmation => 'blabla')
55
53
  assert user.invalid?
56
- assert user.errors[:password]
57
- assert_equal 'doesn\'t match confirmation', user.errors[:password]
54
+ assert_equal 'doesn\'t match confirmation', user.errors[:password].join
58
55
  end
59
56
 
60
57
  test 'should require password when updating/reseting password' do
61
58
  user = create_user
59
+
62
60
  user.password = ''
63
61
  user.password_confirmation = ''
62
+
64
63
  assert user.invalid?
65
- assert user.errors[:password]
66
- assert_equal 'can\'t be blank', user.errors[:password]
64
+ assert_equal 'can\'t be blank', user.errors[:password].join
67
65
  end
68
66
 
69
67
  test 'should require confirmation when updating/reseting password' do
70
68
  user = create_user
71
69
  user.password_confirmation = 'another_password'
72
70
  assert user.invalid?
73
- assert user.errors[:password]
74
- assert_equal 'doesn\'t match confirmation', user.errors[:password]
71
+ assert_equal 'doesn\'t match confirmation', user.errors[:password].join
75
72
  end
76
73
 
77
74
  test 'should require a password with minimum of 6 characters' do
78
75
  user = new_user(:password => '12345', :password_confirmation => '12345')
79
76
  assert user.invalid?
80
- assert user.errors[:password]
81
- assert_equal 'is too short (minimum is 6 characters)', user.errors[:password]
77
+ assert_equal 'is too short (minimum is 6 characters)', user.errors[:password].join
82
78
  end
83
79
 
84
80
  test 'should require a password with maximum of 20 characters long' do
85
81
  user = new_user(:password => 'x'*21, :password_confirmation => 'x'*21)
86
82
  assert user.invalid?
87
- assert user.errors[:password]
88
- assert_equal 'is too long (maximum is 20 characters)', user.errors[:password]
83
+ assert_equal 'is too long (maximum is 20 characters)', user.errors[:password].join
89
84
  end
90
85
 
91
86
  test 'should not require password length when it\'s not changed' do
92
87
  user = create_user.reload
93
88
  user.password = user.password_confirmation = nil
94
89
  assert user.valid?
90
+
95
91
  user.password_confirmation = 'confirmation'
96
92
  assert user.invalid?
97
- assert user.errors[:password]
98
- assert_not user.errors[:password].to_a.include?('is too short (minimum is 6 characters)')
93
+ assert_not (user.errors[:password].join =~ /is too long/)
99
94
  end
100
95
 
101
96
  test 'shuold not be included in objects with invalid API' do
@@ -1,7 +1,7 @@
1
1
  require 'test/test_helper'
2
2
 
3
3
  class Configurable < User
4
- devise :database_authenticatable, :confirmable, :rememberable, :timeoutable, :lockable,
4
+ devise :authenticatable, :confirmable, :rememberable, :timeoutable, :lockable,
5
5
  :stretches => 15, :pepper => 'abcdef', :confirm_within => 5.days,
6
6
  :remember_for => 7.days, :timeout_in => 15.minutes, :unlock_in => 10.days
7
7
  end
@@ -23,21 +23,7 @@ class ActiveRecordTest < ActiveSupport::TestCase
23
23
  end
24
24
 
25
25
  test 'add modules cherry pick' do
26
- assert_include_modules Admin, :database_authenticatable, :registerable, :timeoutable
27
- end
28
-
29
- test 'order of module inclusion' do
30
- correct_module_order = [:database_authenticatable, :registerable, :timeoutable]
31
- incorrect_module_order = [:database_authenticatable, :timeoutable, :registerable]
32
-
33
- assert_include_modules Admin, *incorrect_module_order
34
-
35
- # get module constants from symbol list
36
- module_constants = correct_module_order.collect { |mod| Devise::Models::const_get(mod.to_s.classify) }
37
-
38
- # confirm that they adhere to the order in ALL
39
- # get included modules, filter out the noise, and reverse the order
40
- assert_equal module_constants, (Admin.included_modules & module_constants).reverse
26
+ assert_include_modules Admin, :authenticatable, :registerable, :timeoutable
41
27
  end
42
28
 
43
29
  test 'set a default value for stretches' do
@@ -1,14 +1,13 @@
1
- require File.join(File.dirname(__FILE__), '..', 'rails_app', 'config', 'environment')
2
- require 'test_help'
1
+ require File.expand_path('../../rails_app/config/environment', __FILE__)
2
+ require 'rails/test_help'
3
3
 
4
4
  ActiveRecord::Migration.verbose = false
5
5
  ActiveRecord::Base.logger = Logger.new(nil)
6
- ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
7
6
 
8
7
  ActiveRecord::Schema.define(:version => 1) do
9
8
  [:users, :admins, :accounts].each do |table|
10
9
  create_table table do |t|
11
- t.database_authenticatable :null => table == :admins
10
+ t.authenticatable :null => table == :admins
12
11
 
13
12
  if table != :admin
14
13
  t.string :username
@@ -1,16 +1,8 @@
1
- require 'mongo_mapper'
2
1
  MongoMapper.database = "devise-test-suite"
3
2
  MongoMapper.connection = Mongo::Connection.new('127.0.0.1', 27017)
4
3
 
5
- require File.join(File.dirname(__FILE__), '..', 'rails_app', 'config', 'environment')
6
- require 'test_help'
7
-
8
- module MongoMapper::Document
9
- # TODO This should not be required
10
- def invalid?
11
- !valid?
12
- end
13
- end
4
+ require File.expand_path('../../rails_app/config/environment', __FILE__)
5
+ require 'rails/test_help'
14
6
 
15
7
  class ActiveSupport::TestCase
16
8
  setup do
@@ -1,5 +1,5 @@
1
1
  class Admin < ActiveRecord::Base
2
- devise :database_authenticatable, :registerable, :timeoutable
2
+ devise :authenticatable, :registerable, :timeoutable
3
3
 
4
4
  def self.find_for_authentication(conditions)
5
5
  last(:conditions => conditions)
@@ -1,7 +1,7 @@
1
1
  class User < ActiveRecord::Base
2
- devise :database_authenticatable, :http_authenticatable, :confirmable,
3
- :lockable, :recoverable, :registerable, :rememberable, :timeoutable,
4
- :token_authenticatable, :trackable, :validatable
2
+ devise :authenticatable, :http_authenticatable, :confirmable, :lockable, :recoverable,
3
+ :registerable, :rememberable, :timeoutable, :token_authenticatable,
4
+ :trackable, :validatable
5
5
 
6
6
  attr_accessible :username, :email, :password, :password_confirmation
7
7
  end
@@ -2,11 +2,5 @@
2
2
  # Likewise, all the methods added will be available for all controllers.
3
3
 
4
4
  class ApplicationController < ActionController::Base
5
- helper :all # include all helpers, all the time
6
- protect_from_forgery # See ActionController::RequestForgeryProtection for details
7
-
8
- # Scrub sensitive parameters from your log
9
- filter_parameter_logging :password
10
-
11
- before_filter :current_user
5
+ protect_from_forgery
12
6
  end
@@ -0,0 +1,6 @@
1
+ class SessionsController < Devise::SessionsController
2
+ def new
3
+ flash[:notice] = "Welcome to #{controller_path.inspect} controller!"
4
+ super
5
+ end
6
+ end
@@ -9,8 +9,4 @@ class UsersController < ApplicationController
9
9
  user_session['last_request_at'] = 31.minutes.ago.utc
10
10
  render :text => 'User will be expired on next request'
11
11
  end
12
-
13
- def show
14
- render :text => current_user.id.to_s
15
- end
16
12
  end
@@ -1,13 +1,10 @@
1
1
  class Admin
2
2
  include MongoMapper::Document
3
- devise :authenticatable, :registerable, :timeoutable
3
+ include MongoMapper::Plugins::Callbacks
4
4
 
5
- def self.find_for_authentication(conditions)
6
- last(:conditions => conditions)
7
- end
5
+ devise :authenticatable, :timeoutable
8
6
 
9
- def self.last(options={})
10
- options.merge!(:order => 'email')
11
- super options
7
+ def self.find_for_authentication(conditions)
8
+ last(:conditions => conditions, :order => "email")
12
9
  end
13
10
  end
@@ -1,14 +1,11 @@
1
1
  class User
2
2
  include MongoMapper::Document
3
+
3
4
  key :created_at, DateTime
4
- devise :authenticatable, :http_authenticatable, :confirmable, :lockable, :recoverable,
5
- :registerable, :rememberable, :timeoutable, :token_authenticatable,
6
- :trackable, :validatable
7
- # attr_accessible :username, :email, :password, :password_confirmation
8
5
 
9
- def self.last(options={})
10
- options.merge!(:order => 'email')
11
- super options
12
- end
6
+ devise :authenticatable, :http_authenticatable, :confirmable, :recoverable,
7
+ :rememberable, :trackable, :validatable, :timeoutable, :lockable,
8
+ :token_authenticatable
13
9
 
10
+ # attr_accessible :username, :email, :password, :password_confirmation
14
11
  end
@@ -0,0 +1,32 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ DEVISE_ORM = :active_record unless defined? DEVISE_ORM
4
+
5
+ require "active_record/railtie" if DEVISE_ORM == :active_record
6
+ require "action_controller/railtie"
7
+ require "action_mailer/railtie"
8
+ require "active_resource/railtie"
9
+ require "rails/test_unit/railtie"
10
+
11
+ Bundler.require :default, DEVISE_ORM
12
+ require "devise"
13
+
14
+ module RailsApp
15
+ class Application < Rails::Application
16
+ config.root = File.expand_path("../..", __FILE__)
17
+
18
+ # Add additional load paths for your own custom dirs
19
+ config.load_paths.reject!{ |p| p =~ /\/app\/(\w+)$/ && !%w(controllers helpers views).include?($1) }
20
+ config.load_paths += [ "#{config.root}/app/#{DEVISE_ORM}" ]
21
+
22
+ # Configure generators values. Many other options are available, be sure to check the documentation.
23
+ # config.generators do |g|
24
+ # g.orm :active_record
25
+ # g.template_engine :erb
26
+ # g.test_framework :test_unit, :fixture => true
27
+ # end
28
+
29
+ # Configure sensitive parameters which will be filtered from the log file.
30
+ config.filter_parameters << :password
31
+ end
32
+ end
@@ -1,110 +1,9 @@
1
- # Don't change this file!
2
- # Configure your app in config/environment.rb and config/environments/*.rb
3
-
4
- RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
5
-
6
- module Rails
7
- class << self
8
- def boot!
9
- unless booted?
10
- preinitialize
11
- pick_boot.run
12
- end
13
- end
14
-
15
- def booted?
16
- defined? Rails::Initializer
17
- end
18
-
19
- def pick_boot
20
- (vendor_rails? ? VendorBoot : GemBoot).new
21
- end
22
-
23
- def vendor_rails?
24
- File.exist?("#{RAILS_ROOT}/vendor/rails")
25
- end
26
-
27
- def preinitialize
28
- load(preinitializer_path) if File.exist?(preinitializer_path)
29
- end
30
-
31
- def preinitializer_path
32
- "#{RAILS_ROOT}/config/preinitializer.rb"
33
- end
34
- end
35
-
36
- class Boot
37
- def run
38
- load_initializer
39
- Rails::Initializer.run(:set_load_path)
40
- end
41
- end
42
-
43
- class VendorBoot < Boot
44
- def load_initializer
45
- require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
46
- Rails::Initializer.run(:install_gem_spec_stubs)
47
- Rails::GemDependency.add_frozen_gem_path
48
- end
49
- end
50
-
51
- class GemBoot < Boot
52
- def load_initializer
53
- self.class.load_rubygems
54
- load_rails_gem
55
- require 'initializer'
56
- end
57
-
58
- def load_rails_gem
59
- if version = self.class.gem_version
60
- gem 'rails', version
61
- else
62
- gem 'rails'
63
- end
64
- rescue Gem::LoadError => load_error
65
- $stderr.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.)
66
- exit 1
67
- end
68
-
69
- class << self
70
- def rubygems_version
71
- Gem::RubyGemsVersion rescue nil
72
- end
73
-
74
- def gem_version
75
- if defined? RAILS_GEM_VERSION
76
- RAILS_GEM_VERSION
77
- elsif ENV.include?('RAILS_GEM_VERSION')
78
- ENV['RAILS_GEM_VERSION']
79
- else
80
- parse_gem_version(read_environment_rb)
81
- end
82
- end
83
-
84
- def load_rubygems
85
- min_version = '1.3.2'
86
- require 'rubygems'
87
- unless rubygems_version >= min_version
88
- $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
89
- exit 1
90
- end
91
-
92
- rescue LoadError
93
- $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org)
94
- exit 1
95
- end
96
-
97
- def parse_gem_version(text)
98
- $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
99
- end
100
-
101
- private
102
- def read_environment_rb
103
- File.read("#{RAILS_ROOT}/config/environment.rb")
104
- end
105
- end
106
- end
1
+ begin
2
+ require File.expand_path("../../../../.bundle/environment", __FILE__)
3
+ rescue LoadError
4
+ require 'rubygems'
5
+ require 'bundler'
6
+ Bundler.setup
107
7
  end
108
8
 
109
- # All that for this:
110
- Rails.boot!
9
+ $:.unshift File.expand_path('../../../../lib', __FILE__)