This is Part 2 of the preview for "Keeping Tests Dry" at next week's erubycon.
Several people offered improvements to the bad code from Part 1. Here is my own second cut, much better than the first:
This could still be a lot better. How would you DRY this up for use across a large codebase? (More to follow...)