blob: 32416c260a43e42980fb28e53b37c60bb86257cf [file] [log] [blame]
class OrgChart
@@duties = {}
@@desc = {}
def self.load
@@source ||= ASF::SVN['personnel-duties']
Dir[File.join(@@source, '*.txt')].each do |file|
name = file[/.*\/(.*?)\.txt/, 1]
next if @@duties[name] and @@duties[name]['mtime'] > File.mtime(file).to_f
data = Hash[*File.read(file).split(/^\[(.*)\]\n/)[1..-1].map(&:strip)]
next unless data['info']
data['info'] = YAML.load(data['info'])
data['mtime'] = File.mtime(file).to_f
@@duties[name] = data
end
file = File.join(@@source, 'README')
unless @@desc['mtime'] and @@desc['mtime'] > File.mtime(file).to_f
data = Hash[*File.read(file).split(/^\[(.*)\]\n/)[1..-1].map(&:strip)]
if data['info'] then
data = YAML.load(data['info'])
data['mtime'] = File.mtime(file).to_f
@@desc = data
end
end
@@duties
end
def self.[](name)
self.load
@@duties[name]
end
def self.desc
self.load
@@desc
end
end