The built-in hash method returns Integer values which can change between versions of Ruby (1.8, 1.9, JRuby, etc...). I needed a hash value that was consistent between all of them for the same object and which also reduced the possibility of collisions.