owns a terrific task management/project management Web app called This online collaboration tool helps reduce email volume, provides visibility into the workflow of other team members, provides real-time notification and activity feeds of project progress, and more.’s REST API

Recently began beta testing a REST API that allows developers to interact with from within other applications. Like most API’s, there are a number of properties and headers that must be set with each call. These properties and headers ensure things like user authentications and access. Because of this, API’s are often cumbersome to use “raw” — that is, by generating a unique url string and generating a HTTP request with headers by hand for every request.

Introducing Dobedobedo

While the RESTful nature of modern API’s like’s API makes development easier, a language-specific wrapper can make using the API more language idiomatic and natural. Dobedobedo is just that, an idiomatic Ruby wrapper for the REST API.

Specifically, Dobedobedo provides two pieces of functionality:

  • It translates idiomatic calls for create, read, update and delete (CRUD) into appropriate URL paths with proper id’s, properties, and headers for all standard objects such as Task, Comments, Notes, etc.
  • Since all responses from the API are returned in JSON format, Dobedobedo takes care of deserializing the responses from JSON into Ruby objects with relevant methods. For example, a request for Tasks within a project returns an array of Task objects, each with their own update, save, and delete methods.

Dobedobedo works by establishing a secure connection via OAuth2 and dynamically defines “model” objects that reflect workspaces, projects, tasks, comments, etc. For example, when a request is made to create a new object, say a task, the API returns a “blank” object that defines fields and infers types but contains no data (except for that which you pass in as optional fields to the create call). In this way, Dobedobedo can create “model” objects that are always dynamically defined by API responses making Dobedobedo some measure of future-proof against field name changes, additions and deletions.

Dobedobedo: Watch and Learn

This video demonstrates a command line Ruby application using Dobedobedo to view, create and delete/mark done tasks in a workspace.

Learn More

Developers interested in integrating with their Ruby based projects can find more details about the gem here.

Dobedobedo on Github

Get the latest Salesforce Developer blog posts and podcast episodes via Slack or RSS.

Add to Slack Subscribe to RSS