Estoy escribiendo una aplicación de Ruby en este momento que va a buscar en twitter varias cosas. Uno de los problemas que voy a enfrentar es el de los resultados compartidos entre búsquedas muy próximas entre sí. Los resultados se devuelven en una matriz de objetos, cada uno de los cuales es un solo tweet. Conozco el método Array.uniq en ruby, que devuelve una matriz con todos los duplicados eliminados.¿Quitar objetos idénticos en Ruby?
Mi pregunta es esta. ¿Elimina el método uniq los duplicados en la medida en que estos objetos apuntan al mismo espacio en la memoria o que contienen información idéntica?
Si es el primero, ¿cuál es la mejor manera de eliminar duplicados de una matriz en función de su contenido?
gracias, implementé el método requerido en la clase y parece estar funcionando ahora. afortunadamente, lo único que realmente necesito comparar es la identificación única para cada tweet :) Supongo que 'other.class = self.class' debe ser' other.class == self.class'? –
Sí, tienes razón. Fijo. –
No pude hacer que esto funcione sin sobreescribir el método 'hash' también. Ver http://www.rabbitcreative.com/2008/01/23/comparing-custom-objects-in-ruby-using-uniq/ – spier