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