NAME
    Fey::DBIManager - Manage a set of DBI handles

SYNOPSIS
      my $manager = Fey::DBIManager->new();

      $manager->add_source( dsn => 'dbi:Pg:dbname=MyDB' );

      my $source = $manager->default_source();

      my $source = $manager->source_for_sql($select_sql);

DESCRIPTION
    `Fey::DBIManager' manager a set of Fey::DBIManager::Source objects, each
    of which in turn represents a single `DBI' handle.

    It's main purpose is to provide a single interface to one or more data
    sources, allowing you to easily define your database connections in one
    spot.

METHODS
    This class provides the following methods:

  Fey::DBIManager->new()

    Returns a new `Fey::DBIManager' object.

  $manager->add_source(...)

    This method adds a new Fey::DBIManager::Source object to the manager. It
    can either accept an instantiated Fey::DBIManager::Source object, or a
    set of parameters needed to create a new source.

    Sources are identified by name, and if you try to add one that already
    exists in the manager, an error will be thrown.

  $manager->get_source($name)

    Given a source name, this returns the named source, if it exists in the
    manager.

  $manager->remove_source($name)

    Removes the named source, if it exists in the manager.

  $manager->has_source($name)

    Returns true if the manager has the named source.

  $manager->sources()

    Returns all of the source in the manager.

  $manager->default_source()

    This method returns the default source for the manager. If the manager
    has only one source, then this is the default. Otherwise it looks for a
    source named "default". If no such source exists, or if the manager has
    no sources at all, then an exception is thrown.

  $manager->source_for_sql($sql_object)

    This method accepts a single `Fey::SQL' object and returns an
    appropriate source.

    By default, this method simply returns the default source. It exists to
    provide a spot for subclasses which want to do something more clever,
    such as use one source for reads and another for writes.

AUTHOR
    Dave Rolsky, <autarch@urth.org>

BUGS
    Please report any bugs or feature requests to
    `bug-fey-dbimanager@rt.cpan.org', or through the web interface at
    http://rt.cpan.org. I will be notified, and then you'll automatically be
    notified of progress on your bug as I make changes.

COPYRIGHT & LICENSE
    Copyright 2006-2008 Dave Rolsky, All Rights Reserved.

    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

