h2. 1.0.4, released 13/08/2009 * [WCR] Auto-assign Contact#contact_id and Invoice#invoice_id on creation of either of these records. * [WCR] Add Xero::Gateway#build_contact and Xero::Gateway#build_invoice factory methods to create Contact/Invoice objects associated with the gateway. * [WCR] Add Contact#save method to create/update a contact record based on if it has a contact_id or contact_number. * [WCR] Add Invoice#save method to create (insert only currently supported by Xero API) the invoice. * [WCR] Add #valid? method to each model class to validate it's contents with the minimum required by the API (without calling the API). * [WCR] Add useful API constants throughout the library. * [WCR] Allow Invoice and LineItem to auto-calculate line_amount, sub_total, total_tax and total fields. Existing setters for these fields remain (for backwards compatability) but will be deprecated in the future. * [WCR] Create XeroGateway::AccountList class to make working with the accounts response more powerful and faster (as it caches the last result). h2. 1.0.3, released 09/12/2008 * Major refactorings to DRY out gateway.rb * Removed all messages classes in favour of invoice.to_xml and Invoice.from_xml(element) * Added unit tests for the handing of errors from Xero h2. 1.0.2, released 04/12/2008 * Added implementation of GET /api.xro/1.0/tracking h2. 1.0.1, released 02/12/2008 * Added implementation of GET /api.xro/1.0/accounts * Replaced Invoice.id, Contact.id etc with Invoice.invoice_id, Contact.contact_id to avoid Object.id errors h2. 1.0.0, released 01/12/2008 * Initial release, including: * PUT /api.xro/1.0/contact * GET /api.xro/1.0/contact * GET /api.xro/1.0/contacts * PUT /api.xro/1.0/invoice * GET /api.xro/1.0/invoice * GET /api.xro/1.0/invoices