Sometimes we put data into a cache, only to find that things break when we try to take it back out again. Here's how to avoid this problem.
Today we examine a technique for working with paged data from web services.
Today we learn an alternative to "service objects" for scripting user interactions.
Test doubles are a powerful but easy-to-misuse tool for design. In this episode, we look at some tell-tale signes that mocks aren't being used effectively.
In today's episode, we put together several of the small bits of Ruby lore we've learned in order to build a simple and pragmatic mail templating system.
You might remember the Gateway and Mapper patterns from recent episodes. Today we'll look at how to insert a caching layer between those two patterns. In the process, we'll examine …
Today we explore a pattern for bridging the gap between different domain models.
In another peek into my ongoing behind-the-scenes work on RubyTapas, today I extract the responsibility for representing a logged-in screen-scraping user-agent session into its own class.
Today's episode tackles the problem of talking to a web app which has no published API, using the Mechanize screen-scraping gem. In the process, we'll explore the Gateway pattern for …