1
0
Fork 0
mirror of https://github.com/heartcombo/devise.git synced 2022-11-09 12:18:31 -05:00

Moving Devise method to Devise::ActiveRecord and updating TODO

This commit is contained in:
Carlos A. da Silva 2009-10-09 10:46:24 -03:00
parent 1ac4cab473
commit 984cf8ee20
5 changed files with 36 additions and 33 deletions

7
TODO
View file

@ -1,7 +1,3 @@
* SessionsController
* PasswordsController
* ConfirmationsController
* Add mappings
Devise.map :users, :to => User, :for => [:authenticable, :recoverable, :confirmable], :as => :usuario
@ -35,3 +31,6 @@
* Devise::Recoverable
* Devise::Validatable
* SessionsController
* PasswordsController
* ConfirmationsController

View file

@ -16,29 +16,8 @@ require 'devise/initializers/warden'
module Devise
# Shortcut method for including all devise modules inside your User class
# Examples:
# # include only authenticable module (default)
# acts_as_devisable
# # include authenticable + confirmable modules
# acts_as_devisable :confirmable
# # include authenticable + recoverable modules
# acts_as_devisable :recoverable
# # include authenticable + validatable modules
# acts_as_devisable :validatable
# # include all modules
# acts_as_devisable :confirmable, :recoverable, :validatable
# # shortcut to include all modules (same as above)
# acts_as_devisable :all
#
def acts_as_devisable(*options)
include Devise::Models::Authenticable
include Devise::Models::Confirmable if [:all, :confirmable].any?{|o| options.include?(o) }
include Devise::Models::Recoverable if [:all, :recoverable].any?{|o| options.include?(o) }
include Devise::Models::Validatable if [:all, :validatable].any?{|o| options.include?(o) }
end
end
ActionView::Base.send :include, DeviseHelper
ActionController::Base.send :include, Devise::Controllers::Authenticable
ActiveRecord::Base.send :extend, Devise
ActiveRecord::Base.send :extend, Devise::ActiveRecord

View file

@ -0,0 +1,25 @@
module Devise
module ActiveRecord
# Shortcut method for including all devise modules inside your User class
# Examples:
# # include only authenticable module (default)
# devise
# # include authenticable + confirmable modules
# devise :confirmable
# # include authenticable + recoverable modules
# devise :recoverable
# # include authenticable + validatable modules
# devise :validatable
# # include all modules
# devise :confirmable, :recoverable, :validatable
# # shortcut to include all modules (same as above)
# devise :all
#
def devise(*options)
include Devise::Models::Authenticable
include Devise::Models::Confirmable if [:all, :confirmable].any?{|o| options.include?(o) }
include Devise::Models::Recoverable if [:all, :recoverable].any?{|o| options.include?(o) }
include Devise::Models::Validatable if [:all, :validatable].any?{|o| options.include?(o) }
end
end
end

View file

@ -1,26 +1,26 @@
require 'test_helper'
class Authenticable < ActiveRecord::Base
acts_as_devisable
devise
end
class Confirmable < ActiveRecord::Base
acts_as_devisable :confirmable
devise :confirmable
end
class Recoverable < ActiveRecord::Base
acts_as_devisable :recoverable
devise :recoverable
end
class Validatable < ActiveRecord::Base
acts_as_devisable :validatable
devise :validatable
end
class Devisable < ActiveRecord::Base
acts_as_devisable :all
devise :all
end
class DeviseTest < ActiveSupport::TestCase
class DeviseActiveRecordTest < ActiveSupport::TestCase
def include_authenticable_module?(mod)
mod.included_modules.include?(Devise::Models::Authenticable)

View file

@ -1,3 +1,3 @@
class User < ActiveRecord::Base
acts_as_devisable :all
devise :all
end