class ActiveModel::EmailConfirmation
Constants
- VERSION
Attributes
email[R]
user[W]
Public Class Methods
find(token)
click to toggle source
# File lib/active_model/email_confirmation.rb, line 30 def self.find(token) email = verify_token(token) new(email: email).tap { |email_confirmation| raise EmailInvalid if email_confirmation.invalid? } end
Private Class Methods
generate_token(*args)
click to toggle source
# File lib/active_model/email_confirmation.rb, line 41 def self.generate_token(*args) Base64.urlsafe_encode64(message_verifier.generate(*args)) end
message_verifier()
click to toggle source
# File lib/active_model/email_confirmation.rb, line 37 def self.message_verifier Rails.application.message_verifier("email confirmation salt") end
verify_token(string)
click to toggle source
# File lib/active_model/email_confirmation.rb, line 45 def self.verify_token(string) raise TokenInvalid if string.nil? message_verifier.verify(Base64.urlsafe_decode64(string)) rescue ActiveSupport::MessageVerifier::InvalidSignature, ArgumentError raise TokenInvalid end
Public Instance Methods
email=(email)
click to toggle source
# File lib/active_model/email_confirmation.rb, line 16 def email=(email) remove_instance_variable(:@user) if defined?(@user) @email = email end
token()
click to toggle source
# File lib/active_model/email_confirmation.rb, line 26 def token self.class.generate_token(user.email) end
user()
click to toggle source
# File lib/active_model/email_confirmation.rb, line 21 def user return @user if defined?(@user) @user = User.find_by(email: email) end
Private Instance Methods
existence()
click to toggle source
# File lib/active_model/email_confirmation.rb, line 53 def existence errors.add(:email, :invalid) if user.blank? end