Sox

A RubyMotion wrapper for the Freshbooks API.

Installation

Add this to your RubyMotion application's Gemfile:

gem 'sox'

And then execute:

bundle

Then add this to your RubyMotion application's Rakefile:

require 'sox'

Usage

All requests can go through the Sox::Client object. To create a client object, you pass it your authorization credentials. Currenly Sox only supports basic authentication using your Freshbooks API token but we there is a plan to add OAuth support.

You can retrieve your Freshbooks API token from the 'My Account' page on Freshbooks.

@client = Sox::Client.new 'your-freshbooks-subdomain', 'api-token'

You can then use your client object to perform the CRUD operations on Freshbooks.

projects = @client.projects.all

Sox will convert the XML that is returned from the Freshbooks API into modern day hashes. Yay!

puts projects[:response][:projects][:project][0][:client_id]

TODO

This is a very early release. All the base classes and supporting classes should be in place to easily add the additional proxies and API calls (specifically find, update, create, and delete).

  • Currently only setup for OSX
  • Add integration tests for real API data
  • Support for OAuth authentication

  • Clients (update, get, delete)

  • Projects (update, get, delete)

  • Categories (create, update, get, delete, list)

  • Estimates (create, update, get, delete, list, sendByEmail)

  • Categories (create, update, get, delete, list)

  • Expenses (create, update, get, delete, list)

  • Gateways (list)

  • Invoices (create, update, get, delete, list, sendByEmail, sendbySnailMail)

  • Invoice Items (add, delete, update)

  • Items (create, update, get, delete, list)

  • Languages (list)

  • Payments (create, update, get, delete, list)

  • Receipts (create, update, get, delete)

  • Recurring (create, update, get, delete, list)

  • Recurring Items (add, delete, update)

  • Staff (current, get, list)

  • Tasks (create, update, get, delete, list)

  • Taxes (create, update, get, delete, list)

  • Time entries (update, get, delete)

Contributing

  1. Fork it
  2. Run bundle to get the Gem dependency
  3. Run rake spec to run all of the tests to ensure they pass
  4. Create your feature branch (git checkout -b my-awesome-sauce)
  5. Write your specs
  6. Code!
  7. Commit your changes (git commit -am 'Added some awesome sauce')
  8. Push your new branch (git push origin my-awesome-sauce)
  9. Create a pull request (hub pull-request -b brilliantfantastic:master -h yourrepo:my-awesome-sauce)

License

MIT. See LICENSE