Basket

Easily process and sort a directory of files.

Example:

Basket.process("orders") do |file|
  puts "we are processing #{file}"
end

Assuming there are number of files in orders/inbox

  • each file is mv‘d to orders/pending

  • the block is called on each file

  • the file is mv‘d to orders/archive

See Basket#process for a list of all the options.

Install:

gem install jashmenn-basket --source http://gems.github.com

More examples:

The output folder can be conditional based on the output of the block, as in the following example. In this case the default names of the folders are success and fail based on the return value of the block being true or false.

:include:examples/02_conditional.rb

You can create arbitrary baskets for the output. If you specify :other then the files are not mv‘d automatically. You must call the appropriate bang method on the file. For example:

:include:examples/03_other_baskets.rb

Baskets has (experimental) built-in support for doing parallel processing using forkoff. Example:

:include:examples/04_parallel.rb