def save(publish_after_save = true)
      attributes = [:name, :badge, :domains].inject({}) { |attributes, x| attributes[x] = instance_variable_get("@#{x}"); attributes }
      result = mass_assign Client.post("/kits/#{@id}", :query => attributes)
      published = publish if publish_after_save
      
      # For the parenthesized statement, true && true or false && false are acceptable.
      # but xor does the exact opposite, so we negate it.
      result && !(publish_after_save ^ published)
    end
def save(publish_after_save = true)
      attributes = [:name, :badge, :domains].inject({}) { |attributes, x| attributes[x] = instance_variable_get("@#{x}"); attributes }
      result = mass_assign Client.post("/kits/#{@id}", :query => attributes)
      published = publish if publish_after_save
      
      # For the parenthesized statement, true && true or false && false are acceptable.
      # but xor does the exact opposite, so we negate it.
      result && !(publish_after_save ^ published)
    end
Save kit attributes like name and domains. This does *not* alter the families
 added to the kit.
 @param publish_after_save [Boolean] Commit changes saved to the published kit. See {#publish}.
 @return [Boolean] Status of the operation (including the publishing, if it is called)