module ASF::Board

module which contains the Agenda class

Constants

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['private/committers/board']
  txt = File.read("#{svn}/calendar.txt")
  times = txt.scan(/^\s+\*\)\s(.*)/).flatten
  times.map {|time| TIMEZONE.local_to_utc(Time.parse(time))}
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')
    time = Chronic.parse('3rd wednesday next month') if time < Time.now.utc
  end

  time
end
reporting(meeting) click to toggle source

list of PMCs reporting in the specified meeting

# File lib/whimsy/asf/board.rb, line 38
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