_why /.gurgitate-rules

I dropped procmail for gurgitate about four years ago or something. The list was originally stored in YAML, but one day I decided to put it in this extremely lightweight markup. Check that out: the parser is right there! Kind of lame, but oh well.
maildir = "Mail"

# marked up list of subscriptions
listk = nil
lists = %w[
 |Camping|
    To:camping-list@rubyforge.org
 |Conkeror|
    To:conkeror@mozdev.org
 |Greasemonkey|
    To:greasemonkey-users@googlegroups.com
 |Hobix|
    To:hobix-is-the-way@rubyforge.org
 |Io|
    From:iolanguage-owner@yahoogroups.com
    To:iolanguage@yahoogroups.com
 |ModRuby|
    To:modruby@modruby.net
 |Mongrel-Users|
    Subject:[Mongrel]
    To:mongrel-users@rubyforge.org
 |MouseHole|
    To:mousehole-scripters@rubyforge.org
 |Poignant|
    To:poignant-stiffs@rubyforge.org
    To:poignant-translators@rubyforge.org
    To:poignant-watchers@rubyforge.org
 |Ragel-Users|
    To:ragel-users@googlegroups.com
 |RedCloth|
    To:redcloth-upwards@rubyforge.org
 |RubyGems-Developers|
    Subject:[Rubygems-developers]
 |Ruby-Grammarians|
    To:rubygrammar-grammarians@rubyforge.org
 |Ruby-Talk|
    To:ruby-talk@ruby-lang.org
 |Ruby-Char|
    To:char-encodings-development@rubyforge.org
 |Ruby-Dev|
    To:ruby-dev@ruby-lang.org
 |Ruby-Core|
    To:ruby-core@ruby-lang.org
    To:ruby-cvs@ruby-lang.org
 |Ruby-Vit| To:vit-discuss@rubyforge.org
 |Ruby-VitCore| To:vit-core@rubyforge.org
 |Ruby-Zine| To:rubyzine@lists.artima.com
 |Rake-Devel|
    X-BeenThere:rake-devel@rubyforge.org
    To:rake-devel@rubyforge.org
 |ShiftSpace|
    To:ShiftSpace@googlegroups.com
 |Yaml-core| Subject:[Yaml-core]
 |Yarv-Devel|
    From:yarv-dev-en@quickml.atdot.net
    To:yarv-dev-en@quickml.atdot.net
 |Wmii|
    To:wmii@suckless.org
].inject({}) do |hsh, v|
    if v =~ /^\|(.+)\|$/
        listk = $1
    else
        (hsh[listk] ||= []) << v.split(':')
    end
    hsh
end

# filter and store
case pipe( '/usr/local/bin/bogofilter' ) when 1
    lists.each do |tobox, rules|
        rules.each do |hdr, val|
            re = Regexp::quote val
            case hdr when "To"
                hdr = ["To", "Cc", "Reply-To"] 
                re = /\b#{re}\b/i
            when "Subject"
                re = /#{re}/i
            else
                re = /\b#{re}\b/i
            end
            if headers[*hdr] =~ re
                save "=.IN.#{tobox}"
                return
            end
        end
    end
    save "="
    return
else 
    save '=.Spam.Detected'
    return
end