Ewwwww que asco. Sale una subclass? :)

2009/7/5 Aureliano Calvo <[email protected]>:
> Parece que las opciones menos probables a veces son las que pasan.
> Monkeypatchié Regexp y arreglé el problema. Este es el patch:
>
> class Regexp
>  alias_method :old_rapidito_inspect, :inspect
>
>  def inspect
>   �...@inspect = old_rapidito_inspect if @inspect.nil?
>   �...@inspect
>  end
>
>  def eql?( other )
>    false if other.class != Regexp
>    self.inspect == other.inspect
>  end
>
>  alias_method :"==", :eql?
>
>  def hash
>    self.inspect.hash
>  end
> end
>
> Bueno,
> parece que tengo post nuevo en mi blog :D,
> Aureliano.
>
> 2009/7/5 Rodrigo Dominguez <[email protected]>:
>> Debería... pero si a veces anda y a veces no, no tenes forma de atrapar 
>> cuando no anda, y loguear toda la información de la instancia de la clave y 
>> la instancia con la cual queres buscar esa clave?
>>
>> Es un poco rompe pelotas, pero quisiera imaginarme que un bug en el 
>> lenguaje/librería de hash sea la opción menos probable, y que si a veces 
>> anda y a veces no, se deba a un error lógico del código más que a un error 
>> de ruby, si fuese un error lógico, reimplementar eql y hash de Regexp es lo 
>> más tedioso... aunque debería de ser relativamente sencillo ;)
>>
>> En fin, de las 9 AM que estoy programando, me voy a pasear un rato, si no lo 
>> resolves pásame el código :)
>>
>> Saludos ;)
>>
>> -----Original Message-----
>> From: [email protected] [mailto:[email protected]] On Behalf 
>> Of Aureliano Calvo
>> Sent: Domingo, 05 de Julio de 2009 06:37 p.m.
>> To: Rodrigo Dominguez
>> Cc: Grupo Ruby Argentina
>> Subject: Re: [RubyArg] Expresiones regulares como claves en hashes
>>
>> La clave en cuestión es
>> /([A-Za-z0-9]|\303[\200-\277])*(_([A-Za-z0-9]|\303[\200-\277])+)+/.
>> Estoy probando con:
>> $ ruby --version
>> ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
>>
>> Lo raro, es que anda a veces sí y a veces no. El código que hace que
>> todo falle es demasiado grande como para postearlo en la lista y no
>> encontré como achicarlo. Estoy pensando en cortar camino y
>> reimplementar eql y hash de Regexp. Eso debería andar.
>>
>> Aureliano.
>>
>> 2009/7/5 Rodrigo Dominguez <[email protected]>:
>>> http://www.ruby-doc.org/core/classes/Hash.html
>>>
>>> Siguiendo la doc, recupera la key del hash que no te devuelve (ya fuese 
>>> iterando el hash, o lo que fuese), y a través del .eql? fijate si es igual 
>>> a la key con la cual queres traer el valor de esa key...
>>>
>>> Si todavía te putea, volviendo a la doc del Hash, implementa tu propia 
>>> clase que defina eql? Y hash y ahí debería de andarte.
>>>
>>> Por otro lado, si queres, postea la key en cuestión y como es que te falla.
>>>
>>> Saludos ;)
>>>
>>> -----Original Message-----
>>> From: [email protected] 
>>> [mailto:[email protected]] On Behalf Of Aureliano 
>>> Calvo
>>> Sent: Domingo, 05 de Julio de 2009 06:04 p.m.
>>> To: Grupo Ruby Argentina
>>> Subject: [RubyArg] Expresiones regulares como claves en hashes
>>>
>>> Hola,
>>>
>>> estoy teniendo un bug muy raro en el que tengo un Hash que tiene como
>>> claves regex y símbolos contesta que no tiene un elemento que tiene.
>>>
>>> El hash tiene más de 10 elementos y cuando hago h[h.keys[2]] devuelve
>>> nil!!!!!!!!
>>>
>>> ¿Saben si se pueden usar expresiones regulares como claves de hashes?
>>> En la iteración anterior, el hash con regexs como claves andaba joya.
>>>
>>> ¿Les pasó algo parecido antes?¿el problema vendrá por otro lado?
>>>
>>> Muchas gracias,
>>> Aureliano.
>>> _______________________________________________
>>> Ruby mailing list
>>> [email protected]
>>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>>>
>>>
>>> __________ Información de ESET Smart Security, versión de la base de firmas 
>>> de virus 4219 (20090705) __________
>>>
>>> ESET Smart Security ha comprobado este mensaje.
>>>
>>> http://www.eset.com
>>>
>>>
>>>
>>
>> __________ Informacin de ESET Smart Security, versin de la base de firmas de 
>> virus 4219 (20090705) __________
>>
>> ESET Smart Security ha comprobado este mensaje.
>>
>> http://www.eset.com
>>
>>
>>
>>
>> __________ Información de ESET Smart Security, versión de la base de firmas 
>> de virus 4219 (20090705) __________
>>
>> ESET Smart Security ha comprobado este mensaje.
>>
>> http://www.eset.com
>>
>>
>>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a