diff --git a/TODO b/TODO index 604cbcc9..c63c946c 100644 --- a/TODO +++ b/TODO @@ -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 diff --git a/lib/devise.rb b/lib/devise.rb index 4c2e68a4..4c971811 100644 --- a/lib/devise.rb +++ b/lib/devise.rb @@ -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 diff --git a/lib/devise/active_record.rb b/lib/devise/active_record.rb new file mode 100644 index 00000000..1ac9c5a9 --- /dev/null +++ b/lib/devise/active_record.rb @@ -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 diff --git a/test/devise_test.rb b/test/devise_active_record_test.rb similarity index 92% rename from test/devise_test.rb rename to test/devise_active_record_test.rb index db1492db..21ca6fd4 100644 --- a/test/devise_test.rb +++ b/test/devise_active_record_test.rb @@ -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) diff --git a/test/rails_app/app/models/user.rb b/test/rails_app/app/models/user.rb index 0f6f59cd..86841020 100644 --- a/test/rails_app/app/models/user.rb +++ b/test/rails_app/app/models/user.rb @@ -1,3 +1,3 @@ class User < ActiveRecord::Base - acts_as_devisable :all + devise :all end