RubySpec #3401: arrays containing them selves do not apply == sensibly.
http://redmine.ruby-lang.org/issues/show/3401

Author: Dominic Tarr
Status: Open, Priority: Normal
Category: lib

a = [:a]
a << a
puts a
=> [:a [...]]

b = [:a]
b << b
puts b
=> [:a [...]]

#so , a == b?
puts a == b
=> false

#but they have the same structure...
puts a.to_yaml == b.to_yaml
=> true

#it looks like == compares the object_id's of arrays within arrays.
#more evidence:

c = [:a]
c << a
puts c
=> [:a, [:a, [...]]]
#clearly, a distinctly different array.
puts a == c
=> true
puts a.to_yaml == c.to_yaml
=> false

#this seems surprising behaviour to me


----------------------------------------
http://redmine.ruby-lang.org