class CopDetective

Public Class Methods

configure(options) click to toggle source
# File lib/cop_detective.rb, line 15
def configure(options)
  @@old_password = options[:old_password]
  @@password = options[:password]
  @@confirmation = options[:confirmation]
end
investigate(user, params) click to toggle source
# File lib/cop_detective.rb, line 28
def investigate(user, params)
  reset_variables
  assign(params, @@keys)
  return create_user(user) if @@old_password == nil
  update_user(user)
end
set_keys(keys) click to toggle source
# File lib/cop_detective.rb, line 21
def set_keys(keys)
  raise CopDetective::ErrorMessages.wrong_datatype if keys.class != Hash && keys.class != String
  inspect_keys(keys)
  inspect_values(keys)
  @@keys = keys
end

Private Class Methods

assign(params, keys) click to toggle source
# File lib/cop_detective.rb, line 69
def assign(params, keys)
  assigner.assign(params, keys)
end
assigner() click to toggle source
# File lib/cop_detective.rb, line 73
def assigner
  CopDetectiveAssigner.new
end
create_user(user) click to toggle source
# File lib/cop_detective.rb, line 60
def create_user(user)
  if CopDetectiveValidator.new_passwords_match?(@@password, @@confirmation) && user.valid?
    user.save
    @@messages[:notice] = "Account created. You may now log in."
  else
    user.errors.set(:password, ["Passwords don't match or other params are not valid."])
  end
end
inspect_keys(keys) click to toggle source
# File lib/cop_detective.rb, line 43
def inspect_keys(keys)
  keys.each do |k, v|
    raise CopDetective::ErrorMessages.formatting if k != :confirmation && k != :password && k != :old_password
  end
end
inspect_values(keys) click to toggle source
# File lib/cop_detective.rb, line 49
def inspect_values(keys)
  keys.each do |k, v|
    raise CopDetective::ErrorMessages.options_error(k) if v.class != Symbol && v.class != String
  end
end
reset_variables() click to toggle source
# File lib/cop_detective.rb, line 37
def reset_variables
  @@old_password = nil
  @@password = nil
  @@confirmation = nil
end
update_user(user) click to toggle source
# File lib/cop_detective.rb, line 55
def update_user(user)
  return validate_new_passwords(user) if valid_credentials?(user, @@old_password)
  user.errors.set(:password, [ErrorMessages.unsaved_password(ErrorMessages.invalid_password)])
end
valid_credentials?(user, old_password) click to toggle source
# File lib/cop_detective.rb, line 81
def valid_credentials?(user, old_password)
  CopDetectiveValidator.valid_credentials?(user, old_password)
end
validate_new_passwords(user) click to toggle source
# File lib/cop_detective.rb, line 77
def validate_new_passwords(user)
  CopDetectiveValidator.validate_new_passwords(user, @@password, @@confirmation)
end