Today we begin a series on the Rake build tool. We'll be getting into some powerful, lesser-known features as we continue on; but we'll start out with a quick review …
Category: Freebies
Episode #125: And/Or
Ruby has both symbolic and English forms of the logical "and" and "or" operators. Which one to choose may seem like a matter of taste, but that assumption can get …
Episode #120: Outside-In
In today's episode I tackle the question of how many tests are enough. I'll show how for me, it's all about how long it's been since I last got new …
Episode #087: Naming Things: Headcount
Naming things is hard, and it's difficult to come up with hard-and-fast rules for it. But it can be helpful to learn from examples of real-world naming decisions that led …
Episode #067: Moneta
In the last episode we gave a class the ability to cache HTTP responses in a Hash or something that behaves like a Hash. Now we'll introduce the Moneta gem, …
Episode #066: Caching an API
Web services are slow to request and often have rate caps. A cache can cut down on requests to remote APIs. But how best to design the interface between the …
Episode #064: Yield or Enumerate
A number of Ruby standard library methods return an Enumerator if no block is passed to them. In this episode, we'll learn how to emulate this behavior in our own …
Episode #063: Gem-Love Part 3
Returning to my Gem-Love project in this episode, I use TDD to drive out a client-side implementation for the first feature. In the process, I talk about message-first design. Check …
Episode #059: Enumerator
In previous episodes we've touched on Enumerator in passing. This time it'll take center stage, as we explore just what an Enumerator is and what it's good for.