Briefly: don't write code until you have a failing test that "forces" you to write that code.

For a first attempt at this, just write one integration test. Something like `macbeth_analyzer.run.should == "134 Macbeth\n120Banquo\n..."`

Then, use the errors that your test produces to guide what you do next. Get in the rhythm of 

1. Run the test.
2. Write the smallest amount of code that will make the error go away.
3. GOTO 1.

Hopefully that will get you started.