Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Ruby wrapper for TaskRabbit API.
Ruby

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.gitignore
.rspec
.rvmrc
CHANGELOG.md
Gemfile
Guardfile
README.md
Rakefile
taskrabbit.gemspec

README.md

Build Status

TaskRabbit Ruby Gem

Ruby wrapper for TaskRabbit API.

Installation

gem install taskrabbit

Or in a Gemfile:

gem 'taskrabbit'

Usage Example

Configuration

In an initializer file.

Taskrabbit.configure do |config|
  config.api_secret = 'your-client-secret'
  config.api_key    = 'your-client-key'
  config.base_uri   = 'https://sandbox.com'
  config.endpoint   = 'api/v2'
end

Available configuration options:

  • api_secret: client secret that has been given to you by TaskRabbit
  • api_key: client key that has been given by TaskRabbit
  • base_uri: uri of the server (not mandatory, default to https://www.taskrabbit.com)
  • endpoint: endpoint (not mandatory, default to api/v1)

Task

use the API client

tr = Taskrabbit::Api.new

or with a user token returned by TaskRabbit.

tr = Taskrabbit::Api.new(user_token)

Get the list of all the tasks

tr = Taskrabbit::Api.new
# to get the /tasks
tasks = tr.tasks.all
# fetch the first task
tasks.first

tasks.all(:reload => true) # => will redo the query

Find a task

tr = Taskrabbit::Api.new
t = tr.tasks.find(31231) # This actually wont do the request

To request the API:

t.fetch # force fetching

or simply access a property:

t.name # will do the query

Find the tasks of an user

tr.users.find(user_id).tasks

Create a task

tr = Taskrabbit::Api.new(user_token)
task = tr.tasks.create({:named_price => 32, :name => 'Ikea'})
task.new_record? #=> false

or

task = tr.tasks.new({:named_price => 32, :name => 'Ikea'})
task.save

Update a task

task = tr.tasks.find(32121)
task.named_price = 45
task.save

Error for tasks creation or update

tr = Taskrabbit::Api.new(user_token)
task = tr.tasks.new
unless task.save
  task.error # => "Task title can't be blank, \nAmount you are willing to pay is not a number"
  task.errors # => { "messages" => ["Task title can't be blank", "Amount you are willing to pay is not a number"],
                     "fields" => [["name","can't be blank"], ["named_price","is not a number"]] }
end

Redirect

In some case TaskRabbit will return an url which should be used for further operations (i.e: when the user doesn't have a credit card).

tr = Taskrabbit::Api.new(user_token)
task = tr.tasks.new
unless task.save
  if task.redirect?
    task.redirect_url #=> 'http://www.taskrabbit.com/somepath'
  end
end

User account

tr = Taskrabbit::Api.new(user_token)
tr.account # => Taskrabbit::User object

tr.account.tasks # => List of tasks
tr.account.tasks.create(some_params)

Cities

Get list of cities

tr.cities.each do |city|
  city.name
end

Find a city using the id

tr.cities.find(3).name # => "SF Bay Area"

More informations

More informations: http://taskrabbit.github.com

TODO

Add:

  • Picture and sound upload
  • Pages
Something went wrong with that request. Please try again.