module Authpds::ActsAsAuthentic::CoreAttributes

Public Class Methods

included(klass) click to toggle source
# File lib/authpds/acts_as_authentic/core_attributes.rb, line 4
def self.included(klass)
  klass.class_eval { serialize :user_attributes }
end

Public Instance Methods

user_attributes=(new_attributes) click to toggle source

“Smart” updating of user_attributes. Maintains user_attributes that are not explicity overwritten.

# File lib/authpds/acts_as_authentic/core_attributes.rb, line 16
def user_attributes=(new_attributes)
  if new_attributes.kind_of?(Hash)
    # Merge new/updated attributes with new attributes taking precedence
    merged_attributes = (user_attributes || {}).merge(new_attributes)
    write_attribute(:user_attributes, merged_attributes)
  else
    write_attribute(:user_attributes, new_attributes)
  end
end
username=(value) click to toggle source

Setting the username field also resets the persistence_token if the value changes.

# File lib/authpds/acts_as_authentic/core_attributes.rb, line 9
def username=(value)
  write_attribute(:username, value)
  reset_persistence_token if username_changed?
end