# File lib/puppet/reports/tagmail.rb, line 70
 70:   def parse(text)
 71:     taglists = []
 72:     text.split("\n").each do |line|
 73:       taglist = emails = nil
 74:       case line.chomp
 75:       when /^\s*#/; next
 76:       when /^\s*$/; next
 77:       when /^\s*(.+)\s*:\s*(.+)\s*$/
 78:         taglist = $1
 79:         emails = $2.sub(/#.*$/,'')
 80:       else
 81:         raise ArgumentError, "Invalid tagmail config file"
 82:       end
 83: 
 84:       pos = []
 85:       neg = []
 86:       taglist.sub(/\s+$/,'').split(/\s*,\s*/).each do |tag|
 87:         unless tag =~ /^!?[-\w\.]+$/
 88:           raise ArgumentError, "Invalid tag #{tag.inspect}"
 89:         end
 90:         case tag
 91:         when /^\w+/; pos << tag
 92:         when /^!\w+/; neg << tag.sub("!", '')
 93:         else
 94:           raise Puppet::Error, "Invalid tag '#{tag}'"
 95:         end
 96:       end
 97: 
 98:       # Now split the emails
 99:       emails = emails.sub(/\s+$/,'').split(/\s*,\s*/)
100:       taglists << [emails, pos, neg]
101:     end
102:     taglists
103:   end