Published 2012-06-11 @ 00:00
This is my twelfth entry detailing my personal “productivity pr0n”.
After all these years, with newgem, mr.bones, bundler… I still use Hoe. Emphatically. Why?
Because it saves me time. Lots of it.
Because it saves me from pain. Lots of it.
Because it saves me from my own stupidity. (Lots of it)
Once you have 2+ gems, there are so many reasons to use Hoe and so few legitimate (to me) ones not to.
I’m at about ~600 releases across ~90 projects using Hoe. In that time, Hoe has unified all the project’s common meta-everything. It’s cleaned up the Rakefiles and yet provided me with much more functionality than almost every other gem-whatsit out there. I can test, package, publish, document, announce… all with rake. Everything is verified to be correct from the tests to the gem contents.
If I need special functionality for a single project, I don’t just lump than in with Hoe. I use Hoe’s powerful plugin system. First, I look to see if someone else has already added this functionality via their own gem. There are many:
- hoe-bundler - Generates a Gemfile based on a Hoe’s declared dependencies.
- hoe-debugging - A Hoe plugin to help you debug your codes.
- hoe-deveiate - A collection of Rake tasks and utility functions.
- hoe-doofus - A Hoe plugin that helps me keep from messing up gem releases.
- hoe-gemcutter - Adds gemcutter release automation to Hoe.
- … and so on …
If one doesn’t already exist, then I create my own gem (eg gem-seattlerb) and add it there. Then I can extend that one project. It is as customizable as you want it to be. (See JB’s project hoe-plugin-examples for more plugin examples)
In short, if you’ve got more than one gem, you need to be using something like Hoe. Period. Life is short, time is valuable, and you’ll fuck something up otherwise.