HarvestThings
HarvestThings is a Ruby Gem that syncs clients, projects, and tasks from Things for Mac and pushed them into Harvest–the best time tracking utility out there.
To learn more about Things: http://culturedcode.com/things/
To learn more about Harvest: http://www.getharvest.com/
The source for this gem is located on Github: http://github.com/mkrisher/harvestthings/
The gem can be installed from gemcutter using:
gem install harvestthings
Details
Harvest is an amazing web based time tracking utility from Iridesco. They offer a clean Web interface, a Dashboard widget, and an API. However, I didn't want to have to retype all of my clients, projects, and tasks twice. I was already keeping track of all of these items in Things for Mac. And when recording time, I want to record against the actual task from Things that I was working on. So, this gem was created as a way to take the project and tasks from Things and push them into Harvest via the API.
A typical workflow then becomes. Task gets created in Things and assigned to a project. That project belongs to an area of responsibility. Syncing to Harvest can become really easy. This gem assumes that "Areas of Responsibility" in Things represent "clients" in Harvest. Projects in Things are projects in Harvest. Tasks belong to projects whether in Things or Harvest. The image below shows how these three items match up.
Requirements
The HarvestThings Ruby Gem requires a few other gems and libraries in order to make the API calls (other gems are not listed as dependents):
- hpricot
- net/http
- uri
- base64
- bigdecimal
- date
- time
- jcode
Usage
as a Ruby Gem
require rubygems
require harvestthings
harvestthings
TODO
- add tests
Copyright (c) 2009 Michael Krisher, released under the MIT license