trac4r: Ruby wrapper for the Trac XML-RPC API

Author

Niklas Cathor

Author

David Copeland

License

See LICENSE in source distribution

For more information on the Trac XML-RPC see the plugin’s page on trac-hacks.com

Thanks to the original author, Niklas Cathor, who has done most of the work.

Install

# Only if you haven't set up gemcutter yet
sudo gem install gemcutter
sudo gem tumble

# Once Gemcutter is setup
sudo gem install trac4r

Overview

This wraps the Trac XML-RPC plugin.

require 'rubygems'
require 'trac4r'

# Note that you need to point to the XMLRPC root and not the root of the trac web interface
trac = Trac.new("http://www.example.com/trac/project/xmlrpc","username","password")
trac.tickets.list # get all tickets
trac.tickets.get 2334 # Get ticket #2334

Tickets

Trac’s backbone is tickets. The Tickets class contains many useful methods, but can also run arbitrary queries against Trac using a more Rubyesque syntax:

# Gets all tickets in the "Web" component with a status of either "assigned"
# "accepted", or "new"
available_web_tickets = trac.tickets.query(:component => 'Web', :status => [:assigned,:accepted,:new])

# Ticktes that are not closed
unclosed_tickets = trac.tickets.query(:status => "!closed")

# This is a bit wierd, the "!" in the first element means "none of these values"
not_closed_nor_testing = trac.tickets.query(:status => ["!closed","test"])

:include:trac.rdoc

More Info