Defensive Programming: Writing Fault-Tolerant Ruby