> Preguntonta: ¿no podés evitar utilizar una Regexp como key en un Hash,
> Aureliano?. Si bien Regexp cumple la restricción mínima, que es que
> (a.eql?(b)) ==> (a.hash == b.hash), modifica el hash cuando le da la gana
> (eso no está prohibido pero es un warning, que necesita de un rehash[1]). De
> última rehasheá tu Hash constantemente...

Estoy tokenizando un string y tomando acciones para cada string en
función de que regexp matchea al tokenizar. Por eso lo más trivial me
pareció usar la regexp que matchea como clave en el diccionario de
acciones a tomar. Pero siempre puedo usar una clave de otro tipo (un
string, por ejemplo) que pueda deducir de la regexp (por ejemplo,
regexp.inspect).

Por ahora creo que lo voy a dejar monkeypatcheado, pero no descarto
cambiar las claves de ese diccionario a strings y esquivar el bulto de
este problema.

De todas maneras, no me deja nada tranquilo que una clase que tiene
los métodos hash y eql? definidos adrede cambie el estado por
izquierda de un objeto sin poder ver que cambia en una operación que
no debería cambiar nada. ¿Habría que ponerlo como bug en algún lado?
¿Saben si se da el mismo problema en Ruby 1.9?

Saludos,
Aureliano.
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a