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')