This is a simple Ruby script for assigning secret Santas and emailing everyone their assignment. The basic rule is that nobody can be assigned to give a gift to someone in their own group (including, of course, themselves). In my family, group == household, but it could mean anything you like.
The script uses Dennis Ranke's solution from The Ruby Quiz #2, which gives everyone a correct assignment in a single pass through the list. Nice! :) The only tweaks I made were practical ones, like using config files, and a tiny bit of refactoring, logging, etc, to make it more apparent what's happening.
- Clone the repo
- Copy each of the
config/to a corresponding
ruby secret_santa.rband examine the output
- When you're satisfied, set
trueand run it again
None, other than Ruby (I tested on 1.9) and the standard library.
Thanks to Dennis Ranke for a nice solution, and to James Edward Gray II for running The Ruby Quiz.