No commit activity in last 3 years
No release in over 3 years
Harvested wraps the Harvest API concisely without the use of Rails dependencies. More information about the Harvest API can be found on their website (http://www.getharvest.com/api). For support hit up the Mailing List (http://groups.google.com/group/harvested)
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 1.2.9

Runtime

 Project Readme

Harvested: A Ruby Harvest API

This is a Ruby wrapper for the Harvest API.

Installation

gem install harvested

Examples

harvest = Harvest.client('yoursubdomain', 'yourusername', 'yourpassword')
harvest.projects() # list out projects

client = Harvest::Client.new(:name => "Billable Company LTD.")
client = harvest.clients.create(client)
harvest.clients.find(client.id) # returns a Harvest::Client

You can find more examples in /examples and in the documentation for Harvest::Base

Hardy Client

The guys at Harvest built a great API, but there are always dangers in writing code that depends on an API. For example, HTTP Timeouts, Occasional Bad Gateways, and Rate Limiting issues need to be accounted for.

Using Harvested#client your code needs to handle all these situations. However you can also use Harvested#hardy_client which will retry errors and wait for Rate Limit resets.

harvest = Harvest.hardy_client('yoursubdomain', 'yourusername', 'yourpassword')
harvest.projects() # This will wait for the Rate Limit reset if you have gone over your limit

Links

How to Contribute

If you find what looks like a bug:

  1. Check the GitHub issue tracker to see if anyone else has had the same issue. http://github.com/zmoazeni/harvested/issues/
  2. If you don’t see anything, create an issue with information on how to reproduce it.

If you want to contribute an enhancement or a fix:

  1. Fork the project on github http://github.com/zmoazeni/harvested
  2. Make your changes with tests
  3. Commit the changes without messing with the Rakefile, VERSION, or history
  4. Send me a pull request

Note on running tests: most cucumber features run against a live Harvest account. To run the suite, sign up for a free trial account and fill out /features/support/harvest_credentials.yml (a sample harvest_credentials.example.yml has been included). The tests use the hardy_client so they will wait for a rate limit reset when they detect the limit has been hit.

TODO

  • Write Documentation
  • Implement Invoices
  • Allow Timer Toggling

Other Roadmap items can be found on Pivotal Tracker

Notes on Harvest Estimates

Estimates aren't currently supported due to lack of an API. If this opens up, harvested will include them.

Copyright

Copyright (c) 2010 Zach Moazeni. See LICENSE for details.