blob: 6b7cf129506e8d58a3519f4c8dbe11d6bfcf3cd4 [file] [log] [blame]
require 'weakref'
module ASF
class Person < Base
# Return a hash of nominated members. Keys are ASF::Person objects,
# values are the nomination text.
def self.member_nominees
begin
return Hash[@member_nominees.to_a] if @member_nominees
rescue
end
meetings = ASF::SVN['Meetings']
nominations = Dir[File.join(meetings, '*', 'nominated-members.txt')].sort.last.untaint
nominations = File.read(nominations).split(/^\s*---+--\s*/)
nominations.shift(2)
nominees = {}
nominations.each do |nomination|
id = nomination[/^\s?\w+.*<(\S+)@apache.org>/,1]
id ||= nomination[/^\s?\w+.*\((\S+)@apache.org\)/,1]
id ||= nomination[/^\s?\w+.*\(([a-z]+)\)/,1]
next unless id
nominees[find(id)] = nomination
end
@member_nominees = WeakRef.new(nominees)
nominees
end
# Return the member nomination text for this individual
def member_nomination
@member_nomination ||= Person.member_nominees[self]
end
end
end