Consider this:
class Aaa attr_accessor :a, :b end x = Aaa.new x.a, x.b = 1,2 y = Aaa.new y.a, y.b = 1,2 puts x == y #=>false
Is there some way to check if all public attributes are equal in classes of same type?