This talk walks through the implementation of Ruport's Table() function and describes how to build convenience constructors in Ruby, to make a more user-friendly API that wraps rather than replaces the underlying low level interface.
Thanks to Jia Wu for filtering audio and syncing slides with it. This was recorded with the built-in mic on a Macbook!
The small code samples may not be readable, so you can download the slides at:
groups.google.com/group/hartford-ruby-brigade/web/hartford.rb-2008.07.28-api.pdf