I don't know Ruby, but this caught my eye:
true.class #=> TrueClass
false.class #=> FalseClass
Why would they have two different classes (types?) for what I consider values of a boolean/bit type?