From ea71be8d2a1e4b0f6a51117507769e8dcc92a589 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 28 Mar 2010 07:15:52 +0200 Subject: [PATCH] More compatibility with Rails master. --- .bundle/config | 2 ++ lib/devise.rb | 4 ++-- lib/devise/models/validatable.rb | 2 +- lib/devise/orm/data_mapper.rb | 6 +++++- lib/devise/rails.rb | 2 -- lib/generators/devise_install/templates/devise.rb | 2 +- test/orm/active_record.rb | 3 --- test/orm/data_mapper.rb | 3 --- test/orm/mongoid.rb | 7 ------- test/rails_app/config/application.rb | 4 ++++ test/rails_app/config/boot.rb | 2 +- .../initializers/cookie_verification_secret.rb | 7 ------- .../config/initializers/session_store.rb | 15 --------------- test/{orm/mongoid => support}/locale/en.yml | 0 test/test_helper.rb | 7 +++++-- 15 files changed, 21 insertions(+), 45 deletions(-) create mode 100644 .bundle/config delete mode 100644 test/rails_app/config/initializers/cookie_verification_secret.rb delete mode 100644 test/rails_app/config/initializers/session_store.rb rename test/{orm/mongoid => support}/locale/en.yml (100%) diff --git a/.bundle/config b/.bundle/config new file mode 100644 index 00000000..b8d4716b --- /dev/null +++ b/.bundle/config @@ -0,0 +1,2 @@ +--- +BUNDLE_WITHOUT: "" diff --git a/lib/devise.rb b/lib/devise.rb index 44aa37ae..8cdb9f9b 100644 --- a/lib/devise.rb +++ b/lib/devise.rb @@ -60,8 +60,8 @@ module Devise @@password_length = 6..20 # Email regex used to validate email formats. Adapted from authlogic. - mattr_accessor :email_regex - @@email_regex = /^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i + mattr_accessor :email_regexp + @@email_regexp = /^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i # Time interval where the remember me token is valid. mattr_accessor :remember_for diff --git a/lib/devise/models/validatable.rb b/lib/devise/models/validatable.rb index 555bf099..7d5cb7c3 100644 --- a/lib/devise/models/validatable.rb +++ b/lib/devise/models/validatable.rb @@ -16,7 +16,7 @@ module Devise base.class_eval do validates_presence_of :email validates_uniqueness_of :email, :scope => authentication_keys[1..-1], :allow_blank => true - validates_format_of :email, :with => Devise.email_regex, :allow_blank => true + validates_format_of :email, :with => Devise.email_regexp, :allow_blank => true with_options :if => :password_required? do |v| v.validates_presence_of :password diff --git a/lib/devise/orm/data_mapper.rb b/lib/devise/orm/data_mapper.rb index 6b045238..3d8e11b4 100644 --- a/lib/devise/orm/data_mapper.rb +++ b/lib/devise/orm/data_mapper.rb @@ -76,7 +76,11 @@ module Devise def changed? dirty? end - + + def new_record? + new? + end + def save(options=nil) if options.is_a?(Hash) && options[:validate] == false save diff --git a/lib/devise/rails.rb b/lib/devise/rails.rb index 013b033b..dc849a61 100644 --- a/lib/devise/rails.rb +++ b/lib/devise/rails.rb @@ -3,8 +3,6 @@ require 'devise/rails/warden_compat' module Devise class Engine < ::Rails::Engine - engine_name :devise - initializer "devise.add_middleware" do |app| app.config.middleware.use Warden::Manager do |config| Devise.configure_warden(config) diff --git a/lib/generators/devise_install/templates/devise.rb b/lib/generators/devise_install/templates/devise.rb index a6e65589..7f8759b4 100644 --- a/lib/generators/devise_install/templates/devise.rb +++ b/lib/generators/devise_install/templates/devise.rb @@ -43,7 +43,7 @@ Devise.setup do |config| # config.password_length = 6..20 # Regex to use to validate the email address - # config.email_regex = /^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i + # config.email_regexp = /^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i # ==> Configuration for :timeoutable # The time you want to timeout the user session without activity. After this diff --git a/test/orm/active_record.rb b/test/orm/active_record.rb index 0e4640a5..ba7a5f54 100644 --- a/test/orm/active_record.rb +++ b/test/orm/active_record.rb @@ -1,6 +1,3 @@ -require File.expand_path('../../rails_app/config/environment', __FILE__) -require 'rails/test_help' - ActiveRecord::Migration.verbose = false ActiveRecord::Base.logger = Logger.new(nil) diff --git a/test/orm/data_mapper.rb b/test/orm/data_mapper.rb index f33d935a..8fc5ca87 100644 --- a/test/orm/data_mapper.rb +++ b/test/orm/data_mapper.rb @@ -1,4 +1 @@ -require File.expand_path('../../rails_app/config/environment', __FILE__) -require 'rails/test_help' - DataMapper.auto_migrate! diff --git a/test/orm/mongoid.rb b/test/orm/mongoid.rb index affa33fe..b723803e 100644 --- a/test/orm/mongoid.rb +++ b/test/orm/mongoid.rb @@ -1,14 +1,7 @@ -require File.expand_path('../../rails_app/config/environment', __FILE__) -require 'rails/test_help' - Mongoid.configure do |config| config.master = Mongo::Connection.new('127.0.0.1', 27017).db("devise-test-suite") end -I18n.load_path << File.join( - File.dirname(__FILE__), "mongoid", "locale", "en.yml" -) - class ActiveSupport::TestCase setup do User.delete_all diff --git a/test/rails_app/config/application.rb b/test/rails_app/config/application.rb index f3957c36..85846c87 100644 --- a/test/rails_app/config/application.rb +++ b/test/rails_app/config/application.rb @@ -28,5 +28,9 @@ module RailsApp # Configure sensitive parameters which will be filtered from the log file. config.filter_parameters << :password + + # Cookie settings + config.cookie_secret = 'ea942c41850d502f2c8283e26bdc57829f471bb18224ddff0a192c4f32cdf6cb5aa0d82b3a7a7adbeb640c4b06f3aa1cd5f098162d8240f669b39d6b49680571' + config.session_store :cookie_store, :key => "_my_app" end end diff --git a/test/rails_app/config/boot.rb b/test/rails_app/config/boot.rb index 6627bc4a..b2c00088 100644 --- a/test/rails_app/config/boot.rb +++ b/test/rails_app/config/boot.rb @@ -3,7 +3,7 @@ begin rescue LoadError require 'rubygems' require 'bundler' - Bundler.setup + Bundler.setup :default, DEVISE_ORM end $:.unshift File.expand_path('../../../../lib', __FILE__) \ No newline at end of file diff --git a/test/rails_app/config/initializers/cookie_verification_secret.rb b/test/rails_app/config/initializers/cookie_verification_secret.rb deleted file mode 100644 index d57aa2e5..00000000 --- a/test/rails_app/config/initializers/cookie_verification_secret.rb +++ /dev/null @@ -1,7 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# Your secret key for verifying the integrity of signed cookies. -# If you change this key, all old signed cookies will become invalid! -# Make sure the secret is at least 30 characters and all random, -# no regular words or you'll be exposed to dictionary attacks. -ActionController::Base.cookie_verifier_secret = 'ea942c41850d502f2c8283e26bdc57829f471bb18224ddff0a192c4f32cdf6cb5aa0d82b3a7a7adbeb640c4b06f3aa1cd5f098162d8240f669b39d6b49680571' diff --git a/test/rails_app/config/initializers/session_store.rb b/test/rails_app/config/initializers/session_store.rb deleted file mode 100644 index 8366c802..00000000 --- a/test/rails_app/config/initializers/session_store.rb +++ /dev/null @@ -1,15 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# Your secret key for verifying cookie session data integrity. -# If you change this key, all old sessions will become invalid! -# Make sure the secret is at least 30 characters and all random, -# no regular words or you'll be exposed to dictionary attacks. -ActionController::Base.session = { - :key => '_rails_app_session', - :secret => '0c31f123b2bd4424ac366a7976aaa0696f0c82337c4073a5816a3abc6553293ad14f70cf23acb391954a8ce8cf08aaca3fab21e7642aa52ea212aefa19b7439d' -} - -# Use the database for sessions instead of the cookie-based default, -# which shouldn't be used to store highly confidential information -# (create the session table with "rake db:sessions:create") -# ActionController::Base.session_store = :active_record_store diff --git a/test/orm/mongoid/locale/en.yml b/test/support/locale/en.yml similarity index 100% rename from test/orm/mongoid/locale/en.yml rename to test/support/locale/en.yml diff --git a/test/test_helper.rb b/test/test_helper.rb index 992224f1..4b2a755b 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,11 +1,14 @@ ENV["RAILS_ENV"] = "test" DEVISE_ORM = (ENV["DEVISE_ORM"] || :active_record).to_sym +$:.unshift File.dirname(__FILE__) puts "\n==> Devise.orm = #{DEVISE_ORM.inspect}" -require File.expand_path('../rails_app/config/application', __FILE__) -require File.expand_path("../orm/#{DEVISE_ORM}", __FILE__) +require "rails_app/config/environment" +require "rails/test_help" +require "orm/#{DEVISE_ORM}" +I18n.load_path << File.expand_path("../support/locale/en.yml", __FILE__) require 'mocha' ActionMailer::Base.delivery_method = :test