Farmer Ted came to me the other day with a problem. He has about 10
different packages he wants to work on and periodically release, but
sometimes it seems to him that maintaining a threshing machine is
easier than it is maintaining all his Rakefiles and gemspecs. Most of
his rakefiles are duplicated in every project yet differ slightly
everywhere. His deployment rules that enhanced in one place and go
stale in another. So I showed him another tool to help: Hoe!
Hoe is a tool that covers all the usual stuff you have in a project:
documentation, testing, version compatibility (through multiruby),
packaging, deployment, cleanup, and more. In fact, this:
require 'rubygems' require 'hoe' Hoe.new("thingy", '1.0.0') do |p| p.rubyforge_name = "myproject" p.summary = "I'm so happy that I don't have to write this stuff anymore." end gets you all of this for free: % rake -T rake audit # Run ZenTest against the package rake clean # Clean up all the extras rake clobber_docs # Remove rdoc products rake clobber_package # Remove package products rake default # Run the default tasks rake deploy # Deploy the package to rubyforge. rake docs # Build the docs HTML Files rake install # Install the package. Uses PREFIX and RUBYLIB rake multi # Run the test suite using multiruby rake package # Build all the packages rake redocs # Force a rebuild of the RDOC files rake repackage # Force a rebuild of the package files rake test # Run the test suite. Use FILTER to add to the command line. rake uninstall # Uninstall the package. rake upload # Upload RDoc to RubyForge Farmer Ted tried it out and he's much much happier now. Hoe is real young right now. Rough around the edges. Undocumented. Etc. You've been warned. That said, please try it out and let me know what you think. sudo gem install hoe