mirror of
https://github.com/heartcombo/devise.git
synced 2022-11-09 12:18:31 -05:00
30 lines
910 B
Ruby
30 lines
910 B
Ruby
module Devise
|
|
module Validatable
|
|
|
|
# Email regex used to validate email formats
|
|
#
|
|
EMAIL_REGEX = /\A[\w\.%\+\-]+@(?:[A-Z0-9\-]+\.)+(?:[A-Z]{2,4}|museum|travel)\z/i
|
|
|
|
def self.included(base)
|
|
base.class_eval do
|
|
|
|
validates_presence_of :email
|
|
validates_uniqueness_of :email, :allow_blank => true
|
|
validates_format_of :email, :with => EMAIL_REGEX, :allow_blank => true
|
|
|
|
validates_presence_of :password, :if => :password_required?
|
|
validates_confirmation_of :password, :if => :password_required?
|
|
validates_length_of :password, :within => 6..20, :allow_blank => true, :if => :password_required?
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
# Checks whether a password is needed or not. For validations only.
|
|
#
|
|
def password_required?
|
|
new_record? || !password.nil? || !password_confirmation.nil?
|
|
end
|
|
end
|
|
end
|
|
|