This gist shows buggy behavior of == in Ruby 1.8.7. This affects case equality (===) too because by default === calls == internally unless redefined in specific class (like Range or Regexp).
class A
def ==(other)
puts "In A: calling == against #{other}"
super
end
end