About
FreshBooks.rb is a Ruby interface to the FreshBooks API. It exposes easy-to-use classes and methods for interacting with your FreshBooks account. Read more on ELC’s blog: elctech.com/tags/freshbooks
Examples
Installation:
gem install elc-freshbooks.rb --source http://gems.github.com
Initialization:
FreshBooks::Base.establish_connection( 'sample.freshbooks.com', 'mytoken' )
Updating a client name:
clients = FreshBooks::Client.list
client = clients[0]
client.first_name = 'Suzy'
client.update
Updating an invoice:
invoice = FreshBooks::Invoice.get(4)
invoice.lines[0].quantity += 1
invoice.update
Creating a new item
item = FreshBooks::Item.new
item.name = 'A sample item'
item.create
Getting an invoice pdf:
invoice = FreshBooks::Invoice.get(4)
original_status = invoice.status
invoice.status = "sent"
raise "API Change or error" unless invoice.update
html_url = invoice.client_view
= Tempfile.new("cookies")
pdf_file = Tempfile.new("pdf")
html_doc = `wget "#{html_url}" --no-check-certificate --cookies=on --keep-session-cookies --save-cookies='#{.path}' -O -`
`wget 'https://#{freshbooks_api_host}/getPDF.php' --post-data='invoice_id[]=#{invoice.number}' --cookies=on --keep-session-cookies
--load-cookies='#{.path}' --no-check-certificate -O '#{pdf_file.path}'"`
invoice.status = original_status
raise "API Change or error" unless invoice.update
pdf_file.path # Here's the PDF!
License
This work is distributed under the MIT License. Use/modify the code however you like.
Download
FreshBooks.rb is distributed as a gem via Rubyforge. The easiest way to install it is like so:
gem install freshbooks
Alternatively, you can download it from the Rubyforge project page.
Credits
FreshBooks.rb is written and maintained by Ben Vinegar, with contributions from Flinn Meuller, Kenneth Kalmer, and others.