Sha256: df77372a8e2c13b0dd011a3b52c90f84cb8fd387ab97ba768a842b95d105d8c9
Contents?: true
Size: 907 Bytes
Versions: 77
Compression:
Stored size: 907 Bytes
Contents
# Executive Officer Reports class ASF::Board::Agenda parse do reports = @file.split(/^ 4. Executive Officer Reports/,2).last. split(/^ 5. Additional Officer Reports/,2).first pattern = / \s{4}(?<section>[A-Z])\. \s(?<title>[^\[]+?) \s\[(?<owner>[^\]]+?)\] (?<report>.*?) (?=\n\s{4}[A-Z]\.\s|\z) /mx scan reports, pattern do |attrs| attrs['section'] = '4' + attrs['section'] attrs['shepherd'] = attrs['owner'].split('/').last attrs['owner'] = attrs['owner'].split('/').first attrs['report'].sub! /\A\s*\n/, '' attrs['report'].gsub! /\n\s*\n\s+\[ comments:(.*)\]\s*$/m do attrs['comments'] = $1.sub(/\A\s*\n/, '').sub(/\s+\Z/, '') "\n" end report = attrs['report'].strip if report.empty? or report[0..12] == 'Additionally,' attrs['missing'] = true end end end end
Version data entries
77 entries across 77 versions & 1 rubygems