In this episode: a spasm of refactoring.

A spasm of refactoring in which we lost the video of the first tomato—thankfully!

Yes, it's true. We lost the first tomato. Well, we didn't lose it. We just forgot to hit the record button.

But don't worry, we summarized it for you.

We also sped up the tests!

Well, we think we did anyway. It's kind of hard to'll see. But, Justin does a nice job showing you how to do it.

Exceptions eliminated!

Anyway, we got down to business in the second tomato by removing all the horrible exceptions and replacing them with tuple-based error returns. As it turns out, this worked pretty well.

We also walked through the code, replacing most of the keyword arguments with positional arguments—something that Swift does not make particularly convenient. We did this because the code just looked better once it was done.

And then we found a torture device and subjected ourselves to it.

The github repository for this series can be found at: