def update(attributes = {})
      assert_valid_keys(attributes, :name, :status, :laptop_name, :twitter_id, :facebook_url, :website, :about, :top_artists, :hangout)

      # Update status
      status = attributes.delete(:status)
      update_status(status) if status

      # Update laptop
      laptop_name = attributes.delete(:laptop_name)
      update_laptop(laptop_name) if laptop_name

      # Update profile with remaining data
      update_profile(attributes) if attributes.any?

      true
    end
def update(attributes = {})
      assert_valid_keys(attributes, :name, :status, :laptop_name, :twitter_id, :facebook_url, :website, :about, :top_artists, :hangout)

      # Update status
      status = attributes.delete(:status)
      update_status(status) if status

      # Update laptop
      laptop_name = attributes.delete(:laptop_name)
      update_laptop(laptop_name) if laptop_name

      # Update profile with remaining data
      update_profile(attributes) if attributes.any?

      true
    end
Updates this user's profile information.

 @param [Hash] attributes The attributes to update
 @option attributes [String] :name
 @option attributes [String] :status Valid values include "available", "unavailable", and "away"
 @option attributes [String] :laptop_name Valid values include "mac", "pc", "linux", "chrome", "iphone", "cake", "intel", and "android"
 @option attributes [String] :twitter_id
 @option attributes [String] :facebook_url
 @option attributes [String] :website
 @option attributes [String] :about
 @option attributes [String] :top_artists
 @option attributes [String] :hangout
 @return [true]
 @raise [ArgumentError] if an invalid attribute or value is specified
 @raise [Turntabler::Error] if the command fails
 @example
   user.update(:status => "away")        # => true
   user.update(:laptop_name => "mac")    # => true
   user.update(:name => "...")           # => true