commit 9fe1551a8db1af32eb1f8c99538a0bc60df7be72
parent 4efc8adaf8c63ff054c71149de6c12fe8194ff03
Author: William Morgan <wmorgan-sup@masanjin.net>
Date: Sun, 6 Sep 2009 10:56:20 -0400
coerce Message#add_label (and others) arguments to symbols
So that hook authors can't destroy their index by adding a string as a label.
Diffstat:
1 file changed, 3 insertions(+), 0 deletions(-)
diff --git a/lib/sup/message.rb b/lib/sup/message.rb
@@ -191,11 +191,13 @@ class Message
def has_label? t; @labels.member? t; end
def add_label l
+ l = l.to_sym
return if @labels.member? l
@labels << l
@dirty = true
end
def remove_label l
+ l = l.to_sym
return unless @labels.member? l
@labels.delete l
@dirty = true
@@ -207,6 +209,7 @@ class Message
def labels= l
raise ArgumentError, "not a set" unless l.is_a?(Set)
+ raise ArgumentError, "not a set of labels" unless l.all? { |ll| ll.is_a?(Symbol) }
return if @labels == l
@labels = l
@dirty = true