commit 58421e994205c8b2870ff57ed0a6a13f92c21829
parent f0bc5c6bd6f59df31f830fdd6cbabf36de48542e
Author: William Morgan <wmorgan-sup@masanjin.net>
Date: Sun, 6 Jan 2008 11:17:27 -0800
clean up account code slightly
Diffstat:
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/lib/sup/account.rb b/lib/sup/account.rb
@@ -3,8 +3,10 @@ module Redwood
class Account < Person
attr_accessor :sendmail, :signature
- def initialize email, h
- super h[:name], email, 0, true
+ def initialize h
+ raise ArgumentError, "no name for account" unless h[:name]
+ raise ArgumentError, "no name for email" unless h[:name]
+ super h[:name], h[:email], 0, true
@sendmail = h[:sendmail]
@signature = h[:signature]
end
@@ -21,7 +23,7 @@ class AccountManager
@default_account = nil
add_account accounts[:default], true
- accounts.each { |k, v| add_account v unless k == :default }
+ accounts.each { |k, v| add_account v, false unless k == :default }
self.class.i_am_the_instance self
end
@@ -38,18 +40,18 @@ class AccountManager
end
hash[:alternates] ||= []
- main_email = hash[:email]
- ([hash[:email]] + hash[:alternates]).each do |email|
- next if @email_map.member? email
- a = Account.new main_email, hash
- PersonManager.register a
- @accounts[a] = true
- @email_map[email] = a
- end
+ a = Account.new hash
+ PersonManager.register a
+ @accounts[a] = true
if default
raise ArgumentError, "multiple default accounts" if @default_account
- @default_account = @email_map[main_email]
+ @default_account = a
+ end
+
+ ([hash[:email]] + hash[:alternates]).each do |email|
+ next if @email_map.member? email
+ @email_map[email] = a
end
end