[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[sup-talk] Ruby question: before-add-message.rb and adding multiple labels at once



In order to keep before-add-message.rb readable, I was using one-line
filters like:

    message.add_label "ad apple" if message.from.email =~ /@insideapple.apple.com/
    message.add_label "ad amazon" if message.from.email =~ /promotion.*@amazon.com/
    message.add_label "list sup" if message.subj =~ /\[sup-talk\]/
    message.add_label "list sup-devel" if message.subj =~ /\[sup-devel\]/

That seemed to work, somehow. Only now I realized that message.add_label
in fact only takes a single label as argument.

Is it true that I have to change the above syntax into the much more
verbose:

    if message.subj =~ /\[sup-devel\]/
	message.add_label :list
	message.add_label :"sup-devel"
    end

Removing a message from the inbox ("message.remove_label :inbox") while
applying a label leads to a similar 'code bloat'.


Also, it took me a while to realize that errors in before-add-message.rb
won't lead to a visible error message, but that before-add-message.rb
just silently quits.


The examples in http://sup.rubyforge.org/wiki/wiki.pl?Hooks are a very
good start.

Still, perhaps somebody with robust Ruby skills could add in a section
about the exact usage of message.add_label and message.remove_label,
e.g.:

- What's the difference between "label" and :label?
- Can I use multiple labels in one invocation?
- How about dashes in labels? Is :sup-devel valid, or should I use
  :"sup-devel"?
- How about spaces in label?
- How about "-inbox"? Does it work?



Regards,
    Gregor Hoffleit
_______________________________________________
sup-talk mailing list
sup-talk@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-talk