mite-rb
The official ruby library for interacting with the RESTful API of mite, a sleek time tracking webapp.
Install
Install the lib as a ruby gem:
gem install mite-rb
mite-rb requires activeresource and activesupport in version 3.1 or above. If you want/need to use it with activeresource 2.3.14 to 3.0.9 please use mite-rb 0.4.5.
Documentation
You should read the complete mite.api documentation at http://mite.de/en/api
Authenticate
IMPORTANT: To use mite-rb you must enable the mite.api for your user within the webinterface of mite! It is disabled by default.
The first thing you need to set is the account name. This is the same as the web address (subdomain) for your account. For example if you use mite from the domain demo.mite.de set the account to 'demo':
Mite.account = 'demo'
Then, you should set the authentication. You can either use your mite.api key (recommended) or your login credentials (email and password).
Mite.key = 'cdfeasdaabcdefgssaeabcdefg'
or
Mite.authenticate('rick@techno-weenie.net', 'spacemonkey')
User-Agent
mite-rb sets the User-Agent HTTP-header to 'mite-rb/0.3.0' by default. You can (and should) customize it to a more specific one:
Mite.user_agent = 'my-mighty-mite-addon/1.2.3'
You can combine your custom string with the default one:
Mite.user_agent = "my-mighty-mite-addon/1.2.3;#{Mite.user_agent}"
Validate connection
You can validate the connection/authentication with
Mite.validate
This will return true when the connection is valid and false if not.
Use
Mite.validate!
and mite-rb will raise an exception with further details when the connection is not valid.
Project
Find all active projects
Mite::Project.all
Find all archived projects
Mite::Project.archived
Find projects where name contains 'web'
Mite::Project.all(:params => {:name => 'web'})
Find single project by ID
Mite::Project.find(1209)
Get all time entries of a project
project = Mite::Project.find(1209)
project.time_entries
Get the customer of a project
project = Mite::Project.find(1209)
project.customer
Creating
project = Mite::Project.new(:name => 'Playing with the mite.api')
project.save
or in a single step
project = Mite::Project.create(:name => 'Playing with the mite.api')
Updating
project = Mite::Project.find(1209)
project.name = "mite.api"
project.customer = Mite::Customer.find(384)
project.save
Deleting
project = Mite::Project.find(1209)
project.destroy