public
Fork of randy/fetcher
Description: Fork of svn://rubyforge.org/var/svn/slantwise/fetcher/trunk
Clone URL: git://github.com/cheapRoc/fetcher.git
name age message
file MIT-LICENSE Sun Jul 06 14:03:37 -0700 2008 Initial import [randy]
file README Sun Jul 06 14:03:37 -0700 2008 Initial import [randy]
file Rakefile Sun Jul 06 14:03:37 -0700 2008 Initial import [randy]
directory generators/ Sun Jul 06 14:03:37 -0700 2008 Initial import [randy]
file init.rb Sun Jul 06 14:03:37 -0700 2008 Initial import [randy]
file install.rb Sun Jul 06 14:03:37 -0700 2008 Initial import [randy]
directory lib/ Mon Jul 07 19:14:43 -0700 2008 Rescue if the socket has already been closed. T... [randy]
directory tasks/ Sun Jul 06 14:03:37 -0700 2008 Initial import [randy]
directory test/ Sun Jul 06 14:03:37 -0700 2008 Initial import [randy]
file uninstall.rb Sun Jul 06 14:03:37 -0700 2008 Initial import [randy]
README
= Fetcher

Fetcher is a simple message fetcher perfect for using in a daemon.

It implements the following common pattern:

1. Connect to a server
2. Download available messages
3. Send each message to another object for further processing
4. Remove downloaded messages from the remote server

Install using:
script/plugin install svn://rubyforge.org/var/svn/slantwise/fetcher/trunk

== Usage

Create a new fetcher object like the following:

  @fetcher = Fetcher.create({:type => :pop,
                             :receiver => IncomingMailHandler,
                             :server => 'mail.example.com',
                             :username => 'jim',
                             :password => 'test'})

The receiver object is expected to have a receive method that takes a message as it's only argument.

Call fetch to run the process.

  @fetcher.fetch

You can also subclass Fetcher::Base or one of the protocol-specific classed to override the standard behavior.