module ZxcvbnPassword::Model

Public Instance Methods

password_zxcvbn?() click to toggle source
# File lib/zxcvbn_password/model.rb, line 24
def password_zxcvbn?
  zxcvbn_password_score.score < ::Devise.zxcvbn_min_password_score
end
zxcvbn_password_crack_time() click to toggle source
# File lib/zxcvbn_password/model.rb, line 20
def zxcvbn_password_crack_time
  zxcvbn_password_score.crack_times_display["offline_slow_hashing_1e4_per_second"]
end
zxcvbn_password_score() click to toggle source
# File lib/zxcvbn_password/model.rb, line 16
def zxcvbn_password_score
  @zxcvbn_password_score = self.class.zxcvbn_password_score(self)
end

Private Instance Methods

i18n_variables() click to toggle source
# File lib/zxcvbn_password/model.rb, line 36
def i18n_variables
  {
    # feedback: zxcvbn_feedback,
    crack_time_display: zxcvbn_password_crack_time,
    score: zxcvbn_password_score.score,
    # zxcvbn_min_password_score: ::Devise.zxcvbn_min_password_score
  }
end
not_zxcvbn_password() click to toggle source
# File lib/zxcvbn_password/model.rb, line 30
def not_zxcvbn_password
  if password_zxcvbn?
    errors.add :password, :zxcvbn, i18n_variables
  end
end
zxcvbn_feedback() click to toggle source
# File lib/zxcvbn_password/model.rb, line 45
def zxcvbn_feedback
  feedback = zxcvbn_password_score.feedback.values.flatten.reject(&:empty?)
  return "Add another word or two. Uncommon words are better." if feedback.empty?

  feedback.join(". ").gsub(/\.\s*\./, ".")
end