From 98fa7bf336522c7f355704b2488be4eb96a2962b Mon Sep 17 00:00:00 2001 From: "Carlos A. da Silva" Date: Wed, 7 Oct 2009 23:12:48 -0300 Subject: [PATCH] Refactoring confirmable to use hash options instead of parameters as recoverable does. --- lib/devise/models/confirmable.rb | 5 +++-- test/models/confirmable_test.rb | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/devise/models/confirmable.rb b/lib/devise/models/confirmable.rb index 0e5267d9..42f99874 100644 --- a/lib/devise/models/confirmable.rb +++ b/lib/devise/models/confirmable.rb @@ -50,9 +50,10 @@ module Devise # Find a user by it's confirmation token and try to confirm it. # If no user is found, returns a new user # If the user is already confirmed, create an error for the user + # Options must have the perishable_token # - def find_and_confirm(perishable_token) - confirmable = find_or_initialize_with_error_by_perishable_token(perishable_token) + def confirm!(options={}) + confirmable = find_or_initialize_with_error_by_perishable_token(options[:perishable_token]) confirmable.confirm! unless confirmable.new_record? confirmable end diff --git a/test/models/confirmable_test.rb b/test/models/confirmable_test.rb index c336f984..2f874a67 100644 --- a/test/models/confirmable_test.rb +++ b/test/models/confirmable_test.rb @@ -36,19 +36,19 @@ class ConfirmableTest < ActiveSupport::TestCase test 'should find and confirm an user automatically' do user = create_user - confirmed_user = User.find_and_confirm(user.perishable_token) + confirmed_user = User.confirm!(:perishable_token => user.perishable_token) assert_not_nil confirmed_user assert_equal confirmed_user, user assert user.reload.confirmed? end test 'should return a new user with errors if no user exists while trying to confirm' do - confirmed_user = User.find_and_confirm('invalid_perishable_token') + confirmed_user = User.confirm!(:perishable_token => 'invalid_perishable_token') assert confirmed_user.new_record? end test 'should return errors for a new user when trying to confirm' do - confirmed_user = User.find_and_confirm('invalid_perishable_token') + confirmed_user = User.confirm!(:perishable_token => 'invalid_perishable_token') assert_not_nil confirmed_user.errors[:perishable_token] assert_equal "invalid confirmation", confirmed_user.errors[:perishable_token] end @@ -56,7 +56,7 @@ class ConfirmableTest < ActiveSupport::TestCase test 'should generate errors for a user email if user is already confirmed' do user = create_user user.confirm! - confirmed_user = User.find_and_confirm(user.perishable_token) + confirmed_user = User.confirm!(:perishable_token => user.perishable_token) assert confirmed_user.confirmed? assert confirmed_user.errors[:email] end