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 toorders/pending
-
the block is called on each file
-
the file is
mv
‘d toorders/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