Don't overload #nil?
There's a popular post on Hacker News about writing confident code by, among
other things, overloading
Object#nil? and returning "null objects" instead of
DO NOT DO THIS.
In Ruby, all objects (except nil itself) coerce to the boolean value
Your object will be nil and true at the same time. Bad things will happen. Your
coworkers will cry. Sad people from around the world will ask bewildering
questions on your mailing list.
Here's what happens:
Do you write all your guards using
if o.nil? Neither do I.
If you overload
#nil?, you will get burned. Please don't.