# File lib/puppet/reports/tagmail.rb, line 39
39:     def match(taglists)
40:         reports = []
41:         taglists.each do |emails, pos, neg|
42:             # First find all of the messages matched by our positive tags
43:             messages = nil
44:             if pos.include?("all")
45:                 messages = self.logs
46:             else
47:                 # Find all of the messages that are tagged with any of our
48:                 # tags.
49:                 messages = self.logs.find_all do |log|
50:                     pos.detect { |tag| log.tagged?(tag) }
51:                 end
52:             end
53: 
54:             # Now go through and remove any messages that match our negative tags
55:             messages = messages.reject do |log|
56:                 if neg.detect do |tag| log.tagged?(tag) end
57:                     true
58:                 end
59:             end
60: 
61:             if messages.empty?
62:                 Puppet.info "No messages to report to %s" % emails.join(",")
63:                 next
64:             else
65:                 reports << [emails, messages.collect { |m| m.to_report }.join("\n")]
66:             end
67:         end
68: 
69:         return reports
70:     end