Lobosque Lucas wrote: > Is there a way to compare two objects without take its ID in > consideration? For example: > > #<Game_Esper:0xdcc7e0 @str=6, @mdfel = 0, @name = "Ifrit"> == > #<Game_Esper:0xeda51e @str=6, @mdfel = 0, @name = "Ifrit"> > > It'll return false, because the object ID is different. But i want it to > return true, because the arguments (is it the right name?) are all > equal. This is one pattern I use, and (because it defines #eql? and #hash) it also gives you the hashing behavior you will probably want to go with it: module ContentEquality def hash content.hash end def eql?(other) other.class == self.class and content.eql? other.content end def ==(other) other.class == self.class and content == other.content end end class Game include ContentEquality def initialize str, mdfel, name @str, @mdfel, @name = str, mdfel, name end def content [@str, @mdfel, @name] end end g1 = Game.new "foo", "bar", "baz" g2 = Game.new "foo", "bar", "baz" p g1 == g2 # ==> true h = {} h[g1] = true p h[g2] # ==> true -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407