Dobedobedo

Key features:

Objects are reflective of API results. Future field changes to the API are automatically accounted for.

  • Full CRUD to Projects
  • Full CRUD to Tasks
  • Full CRUD to Notes
  • Full CRUD to Comments
  • Full CRUD to Projects
  • Read access to Alerts
  • Read access to Workspaces
  • Read access to User
  • macRuby compatibility

Todo: i.e. Notable issues and limitations:

  • Nothing requiring the use of Client-Credential Grant type / Provisioning Scope is functional. Primarily this means you cannot create new workspaces, invite someone to a workspace, or Create a new user
  • Put/Update calls to Task resource are not fully reflective as full reflection of the object back to Do.com currently closes the task automatically.

Installation

Add this line to your application's Gemfile:

gem 'dobedobedo'

And then execute:

$ bundle

Or install it yourself as:

$ gem install dobedobedo

Usage

Dobedobedo is modeled on the notion of establishing a secure connection and establishing model objects that reflect your do.com workspaces, projects, tasks, comments, etc. As such, usage is pretty simple.

require 'dobedobedo' # please do this with the bundler.
include Dobedobedo   # gives you access to the top level models.

#Dobedobedo does not use the web-flow for oAuth integration, instead relying on username and password, in 
# conjunction with the oAuth client id / secret
connection = Dobedobedo::Connection.new(:client_id => 'Your Client Id', 
                                        :client_secret => 'Your Client Secret', 
                                        :username => 'Your Email Address', 
                                        :password => 'Your Passsord Here')
#by_name is an alias to find_workspace_by_name
workspace = connection.by_name('workspace name here') 

#array of Dobedobedo::Project objects reflecting each of the projects
projects = workspace.projects

#array of task objects from the first project in the workspace
projects.first.tasks # you could also use projects[2].tasks to get the tasks from the third project of the 
             # workspace selected above.

#This will grab the first task of the first project of the workspace selected.
task = projects.first.tasks.first
task.name = 'new name' #give the task a new name
task.description = 'this is a new description of awesomeness'
task.closed = True #mark the task as done
task.update

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request