Newer Yankee Workshop Build-a-Gem
What's a Gem? Reusable Pieces of Ruby Code
Packaged Following a Convention
Python Eggs, Perl CPAN Modules, PHP PEAR Packages
Why Build a Gem? So people can use your wonderful code
DRY
Version control across different project
Good Practices Don't  require “rubygems”  in your library -  http://gist.github.com/54177
Always have test coverage

Build-a-Gem Workshop