module ASF::Board

module which contains the Agenda class

Constants

DIRECTOR_MAP
DISPLAY_NAME
FIRST_NAME
INITIALS

Map director ids->names and ids->initials Only filled in since 2007 or so, once the preapp data in meetings is parseable

TIMEZONE

Public Class Methods

calendar() click to toggle source

list of board meeting times as listed in committers/board/calendar.txt

# File lib/whimsy/asf/board.rb, line 17
def self.calendar
  svn = ASF::SVN['board']
  txt = File.read(File.join(svn, 'calendar.txt'))
  times = txt.scan(/^\s+\*\)\s(.*)/).flatten
  times.map {|time| TIMEZONE.local_to_utc(Time.parse(time))}
end
directorDisplayName(id) click to toggle source

Return the display name for the uid Fails if there is no entry, so check first using directorHasId?

# File lib/whimsy/asf/board.rb, line 96
def self.directorDisplayName(id)
  DIRECTOR_MAP[id][DISPLAY_NAME]
end
directorFirstName(id) click to toggle source

Return the first name for the uid Fails if there is no entry, so check first using directorHasId?

# File lib/whimsy/asf/board.rb, line 90
def self.directorFirstName(id)
  DIRECTOR_MAP[id][FIRST_NAME]
end
directorHasId?(id) click to toggle source

Does the uid have an entry in the director intials table?

# File lib/whimsy/asf/board.rb, line 78
def self.directorHasId?(id)
  DIRECTOR_MAP[id]
end
directorInitials(id) click to toggle source

Return the initials for the uid Fails if there is no entry, so check first using directorHasId?

# File lib/whimsy/asf/board.rb, line 84
def self.directorInitials(id)
  DIRECTOR_MAP[id][INITIALS]
end
directors() click to toggle source

sorted list of Directors

# File lib/whimsy/asf/board.rb, line 9
def self.directors
  ASF::Service['board'].members.
    map {|person| person.public_name}.
    sort_by {|name| name.split(' ').rotate}
end
nextMeeting() click to toggle source

time of next meeting

# File lib/whimsy/asf/board.rb, line 25
def self.nextMeeting
  time = self.calendar.select {|time| time > Time.now.utc}.min

  if not time
    require 'chronic'

    time ||= Chronic.parse('3rd wednesday this month')

    if not time or time < Time.now.utc
      time = Chronic.parse('3rd wednesday next month')
    end
  end

  time
end
reporting(meeting) click to toggle source

list of PMCs reporting in the specified meeting

# File lib/whimsy/asf/board.rb, line 42
def self.reporting(meeting)
  month = meeting.strftime('%B')
  ASF::Committee.load_committee_info
  ASF::Committee.pmcs.select do |pmc| 
    pmc.report.split(', ').include? month or pmc.report == 'Every month' or
    pmc.report.start_with? 'Next month'
  end
end