module Redwood
-class InvalidAliasError < StandardError; end
-
class ContactManager
include Singleton
def contacts; @p2a.keys; end
def set_contact person, aalias
- raise InvalidAliasError unless valid_alias? aalias
-
if(pold = @a2p[aalias]) && (pold != person)
drop_contact pold
end
def alias_for person; @p2a[person]; end
def is_contact? person; @p2a.member? person; end
- def valid_alias? a
- a =~ /^\S+$/
- end
-
def save
File.open(@fn, "w") do |f|
@p2a.each do |p, a|
if a.empty?
ContactManager.drop_contact p
else
- begin
- ContactManager.set_contact p, a
- rescue InvalidAliasError
- BufferManager.flash "Error: nickname cannot contain spaces."
- end
+ ContactManager.set_contact p, a
end
end
end