lib/whimsy/asf/mail.rb in whimsy-asf-0.0.75 vs lib/whimsy/asf/mail.rb in whimsy-asf-0.0.76

- old
+ new

@@ -1,17 +1,21 @@ +require 'weakref' module ASF class Mail def self.list - return @list if @list + begin + return Hash[@list.to_a] if @list + rescue NoMethodError, WeakRef::RefError + end list = Hash.new # load info from LDAP people = ASF::Person.preload(['mail', 'asf-altEmail']) - people.each do |name, person| + people.each do |person| (person.mail+person.alt_email).each do |mail| list[mail.downcase] = person end end @@ -26,10 +30,11 @@ list[icla.email.downcase] ||= person next if icla.id == 'notinavail' list["#{icla.id.downcase}@apache.org"] ||= person end - @list = list + @list = WeakRef.new(list) + list end def self.lists(public_private= false) apmail_bin = ASF::SVN['infra/infrastructure/apmail/trunk/bin'] file = File.join(apmail_bin, '.archives')