I want to have a class that always evaluates to false in boolean 
expressions.  Is there a way to extend Ruby so that it evaluates an 
object of a class to false like false and nil?

Example

class AlwaysFalse
end

should_be_false = AlwaysFalse.new

if should_be_false
  #I don't want this to ever run
else
  #will always run
end

The use case for this is to have the concept of false but have it 
contain instance variables.  You can't stick instance variables on 
FalseClass because it is a singleton and every use of false will 
overwrite the previous instance variable values.
a = false
a.name = "fish"
b = false
b.name = "ocean"
#at this point in time a.name is equal to "ocean" and not "fish" like I 
want.

This example may seem like an awful design decision but in the program I 
am writing it is important to have an interface like this to meet the 
requirements I have to code against.

Is achieving this behavior as simple as redefining some operator methods 
like == or is this sort of behavior not possible in Ruby?

Thank you,
Matt Margolis