Cordwainer is a collection of notes on how Shoes works. They are written in the style of a tutorial because I learn best when I teach. The goal of these notes/ tutorials is to learn how Shoes works from heel to toe, frontend to backends, do to end. Please feel free to comment on inaccuracies, typos or anything else, I'd love to improve these!


Let's start off by looking at all of the executables that Shoes provides. Understanding the entry point for a program or spec should help put everything else we do into a common perspective. I also found that digging through some of the nuts and bolts here helped me become more familiar with common tools from he Ruby developer's toolkit such as RSpec, Rake, and Rubygems.


With the executables explained, I'd now like to dive into what I call Test Driven Tutorials. The plan is to go through the codebase file by file on a guided tour using the tests to chart a course. If you're not super familiar with RSpec, it's a good idea to read around online to get acquainted but don't worry too much about that. In my opinion, RSpec is the sort of tool that you learn by doing and observing more than by study. That means in the first few tutorials, I'll spend time explaining some of the basics of RSpec such as what we're doing in the tests and why.
As usual, if you see something that doesn't make sense, ask me and I'll include it in the tutorials. I'm not afraid of these being too basic so much as I'm afraid of them leaving someone behind.