Para los que hablan Ruby (era Re: Syntax highlighting:)

Alvaro Herrera alvherre en alvh.no-ip.org
Vie Mayo 7 16:47:05 CLT 2010


Excerpts from Juan Martí­nez's message of vie may 07 16:28:10 -0400 2010:
> Gabriel Acevedo H. escribió:

> > Gabriel: Y por favor, te ruego que no uses un subject diferente para cada
> > e-mail que envías. De verdad que ya es molesto leer tus mensajes.
> 
> Simple, no leas los mensajes de Gabriel.

Bueno, ponerlo en la lista negra consigue justamente eso: no leer esos
mensajes.  (Lo que hizo Andrés Ovalle me parece razonable, excepto que yo
no lo habría anunciado a la lista)

Además del truco de "mute" en gmail, les puedo contar a los que usan Sup
que se puede usar & sobre el thread para lograr el mismo objetivo.

Yo estoy recién empezando a usar Sup desde hace un par de días ...
ahora tratando de enseñarme un poco de Ruby para hacer hooks decentes.
Por el momento tengo la siguiente pregunta:

simple_rules = [
        { "address" => "@lists.debian.org",             "label" => 'debian' },
        { "address" => "linux en listas.inf.utfsm.cl",     "label" => 'linux' },
        { "address" => "pgsql-committers en postgresql.org","label" => 'pg-commiters' },
        { "address" => "pgsql-hackers en postgresql.org",  "label" => 'pg-hackers' },
        { "address" => "pgsql-general en postgresql.org",  "label" => 'pg-general' }
]       

message.recipients.each { |rcpt|
        simple_rules.each { |rule|
                if rcpt =~ /#{rule["address"]}/
                        message.add_label rule["label"]
                        break
                end     
        }
}

¿Alguien sabe cómo hacer eso de una forma un poco más elegante?  La verdad
es que no me gusta mucho que simple_rules tenga que llevar el nombre de las
etiquetas del hash en cada línea.

En realidad me gustaría hacer algo así:

simple_rules.each { |address, label|
	if rcpt =~ /#{address}/
		message.add_label label
		break
	end
}

Pero no consigo ubicar cómo debo definir simple_rules para que esto funcione.
¿Ideas?

-- 


Más información sobre la lista de distribución Linux