module UBSOE def UBSOE::generate_yearly_report(since_year) puts "-------------------------------------------------------" puts "| Publications |" puts "-------------------------------------------------------" puts "" # # Include journal/conference/publication titles, authors, # event dates and locations, acceptance rate and number # of pages as appropriate # pubs = $db["publications"] pubs += $db["cv/okennedy/publications_submitted"] .select { |pub| pub["status"] == "submitted"} .map { |pub| pub.merge({ "type" => "submitted" }) } puts(pubs .select { |pub| pub["year"].to_i >= since_year.to_i } .map { |pub| pub_string = [ "\"#{pub["title"]}\"", pub["authors"].join(", "), LabMetadata.venue_name(pub), ] v = LabMetadata.complete_venue(pub) pub_string.push("#{pub["length"]} pages") if pub.has_key? "length" pub_string.push("Acceptance rate #{LabMetadata.venue_selectivity(pub)}") unless v["type"] == "techreport" pub_string.push(v["location"]) if v.has_key? "location" pub_string.push(v["date"]) if v.has_key? "date" pub_string.join("\n") }.join("\n\n------\n\n") ) puts "" puts "" puts "-------------------------------------------------------" puts "| Presentations |" puts "-------------------------------------------------------" puts "" puts( $db["cv/okennedy/talks"] .select { |talk| if /([0-9]{4})/ =~ talk["date"] then $1.to_i >= since_year end } .map { |talk| "#{talk["talk"]}\n#{talk["date"]}\n#{talk["venue"]}" } .join("\n\n------\n\n") ) puts "" puts "" puts "-------------------------------------------------------" puts "| Advising |" puts "-------------------------------------------------------" puts "" puts puts( $db["lab/members"] .map { |k, person| "#{person["name"]}\n#{person["ubit"]}\n#{person["status"]}" } .join("\n\n------\n\n") ) end end