0.01
No release in over 3 years
Low commit activity in last 3 years
invoicing tools
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
 Dependencies

Development

>= 0

Runtime

 Project Readme

Build Status

Text Invoice

Some tools and helpers for creating, summarising and transforming invoices stored as YAML documents.

The tools are designed to be used in a UNIX-like environment.

Typical uses

Create a new invoice

text-invoice new > some-job.yaml

Update totals, transform to HTML and write to disk

cat some-job.yaml | text-invoice update | text-invoice html > some-job.html

Get a summary of all invoices

find -name "*.yaml" | xargs text-invoice summary

Get a summarised list of all invoices

find -name "*.yaml" | xargs text-invoice list

Get a summarised list of all invoices which contain a word

grep -r -l "some pattern" * | xargs text-invoice list

You get the idea.

Installing

gem install text-invoice

Samples Invoice

Yo, added examples of the YAML, template and a PDF. They're in the example directory.

Custom templates

It's just YAML so it's easy template. I use Mustache templates for the default HTML invoice, and added an option to support custom Mustache templates

cat some-job.yml | text-invoice template my-template.mustache > some-job.something

Of course if you have the Mustache gem installed (which is a dependency of this gem!) you can just use that!

cat some-job.yml | mustache - template.mustache > some-job.something

PDF

I transform my invoices in PDF using wkhtmltopdf. There is a wkpdf gem but it's only for Max OS X, so that wasn't getting included.

cat some-job.yaml | text-invoice update | text-invoice html > /tmp/invoice.html && wkhtmltopdf /tmp/invoice.html some-job.pdf

Use whatever makes you happy.

This seems stupid

I like having invoices in text so I can update them in another Vim buffer as I'm doing work. If I ever think I'm doing to much typing I can always wrap the commands in shell scripts or Vim mappings.

I prefer this to context switching to another application/website or trying to work out what I did from git logs.

Acknowledgements

The template I'm using is a modified version of the pretty-neat-but-not-what-I-wanted Editable, Printable Invoice by Chris Coyer and others.

This is the first gem I've written, and this guide was helpful.