Some of these might not happen, but they’re being thought about. Feel free to add your own.
-
“Push to S3” method (for backing up, etc)
-
Classifiers and file-content based rules. Example:
-
Take bills and bank statements, classify them as the type of document they are, and then rename them based on their content:
- “eStatement.pdf”, “eStatement (1).pdf”, “eStatement (2).pdf”, “statement-1c3f34d.pdf”, “statement-2c53ad1.pdf”, “document-34d1c3f.pdf”, “document-3ad12c5.pdf”
-
For example, ING statements have a date found with the pattern /Your Savings Summary as ofs+(.*?)$/i, Citi statements have the pattern /Statement Closing Date.*?(dd/dd/dddd)/im, etc. Map using the patterns and rules.
# (Define classification rules in some format here, naming one ‘bank_statements’ with the extraction rule ‘date’)
dir(‘~/Downloads/*.pdf’).classify(as: ‘bank_statements’, extract: ‘date’).each do |original_path, classification, date|
move(original_path, "~/Bills/#{classification}/#{date.strftime(...)}.pdf")
end
-
-
Daemon mode
-
Menubar/system tray icon
-
Import of rules from other programs
-
Better user documentation of the DSL (in Maid::Tools)
-
Man pages, e.g. maid(1) and maid(5)
-
I’ve read ozmm.org/posts/man_what.html and rcrowley.org/articles/man-pages-vs-rubygems.html and I’m not too happy with the available tools for this
-
-
Use a Cocoa interface to get Spotlight results
-
“Watch” rules that use Folder Actions on OS X (and icron on Linux?). Something like:
Maid.rules do watch '~/Downloads' do rule 'watch rule 1' do # ... end rule 'watch rule 2' do # ... end end rule 'normal rule 3' do # ... end end
-
Guard has some similar “watch” functionality. Here’s what they use:
-
FSEvent support on Mac OS X 10.5+ (without RubyCocoa!, rb-fsevent gem, >= 0.3.5 required).
-
Inotify support on Linux (rb-inotify gem, >= 0.5.1 required).
-
Directory Change Notification support on Windows (rb-fchange, >= 0.0.2 required).
-
Polling on the other operating systems (help us to support more OS).
-
Automatic & Super fast (when polling is not used) files modifications detection (even new files are detected).
-
-
Possibly: notifications
-
Growl notifications (growlnotify & growl gem required).
-
Libnotify notifications (libnotify gem required).
-
-
GUI for configuring easy rules