NAME
    local::lib::deps - Maintain a module specific lib path for that modules
    dependencies.

DESCRIPTION
    Maintaining perl module dependencies through a distributions package
    manager can be a real pain. This module helps by making it easier to
    simply bundle all your applications dependencies into one lib path
    specific to the module. It also makes it easy to tell your application
    where to look for modules.

SYNOPSYS
    Bootstrap your modules dependency area in the default location:

        use local::lib::deps;
        $local::lib::deps->install_deps( 'My::Module', 'Dep::One', 'Dep::Two' );

    Bootstrap your modules dependency area in a custom location:

        use local::lib::deps;
        $moduledeps = local::lib::deps->new(
            base_path => '/path/to/dep/storage',
        );
        $moduledeps->install_deps( 'My::Module', 'Dep::One', 'Dep::Two', ... );

    This will create a directory specifically for the My::Module namespace
    and install the specified dependencies (and local::lib) there.

    To use those deps in your app:

        use local::lib::deps qw/ My::Module My::ModuleTwo/;
        use Dep::One;

    or

        use local::lib::deps;
        BEGIN {
            $moduledeps = local::lib::deps->new(
                base_path => '/path/to/dep/storage',
            );
            $moduledeps->add_paths( qw/ My::Module My::ModuleTwo/ );
        }
        use Dep::One;

    To initiate local::lib with the destination directory of your module:

        use local::lib::deps -locallib => 'My::Module';

    or

        use local::lib::deps;
        $moduledeps = local::lib::deps->new(
            module => 'My::Module',
            base_path => '/path/to/dep/storage',
        );
        $moduledeps->locallib;

USE CASES
    The primary use case for this module is installing dependencies for an
    application that would conflict in some way with the systems perl or
    module configuration. It is also useful for applications that have a lot
    of dependancies for which no distribution specific packages exist. This
    becomes even more critical when you have a sysadmin that abhors using
    cpan instead of distro packages.

    Using this module as an end user is not very effective. You could
    potentially rig your application to install all the dependencies
    necessary to the users home directory every time it is run. This is a
    bad idea, each user would have their own copy fo the dependencies, and
    every run it will try to update all the deps.

    A better idea is to use this module in your build scripts
    (Module::Build, or Module::Install). The idea would be to have your
    'make' or 'build' task bootstrap the deps folder. Then when the
    application installs the deps will install as well, but in a way that
    does not interfer with the rest of the system.

    This is even more useful when you are building a package as you can
    bundle the dependences in your package.

PUBLIC METHODS
    new( module => 'My::Module', base_path => 'path/to/module/libs',
    cpan_config => {...}, debug => 0 )
        Create a new local::lib::deps object.

    add_paths( qw/ Module::One Module::Two /)
        Add the local::lib path for the specified module to @INC;

    locallib( $module )
        Will get local::lib setup against the local::lib::deps dir. If
        called as a class method $module is manditory, if called as an
        object method $module is ignored.

        This is different from add_paths in that any module you install
        after this will be installed to the specified modules local-lib dir.

    install_deps( $module, @deps )
        This will bootstrap local::lib into a local::lib::deps folder for
        the specified module, it will then continue to install (or update)
        all the dependency modules.

    is_object()
        Used internally, documented for completeness. Determines if $self is
        an object, or the package.

ACCESSOR METHODS
    module()
    base_path()
        Returns the base path that contains the module dependancy areas.
        This is documented because you may wish to override this in an
        application specific subclass.

    cpan_config
        Get the cpan_config hashref.

OTHER METHODS
AUTHORS
    Chad Granum chad@opensourcery.com

COPYRIGHT
    Copyright (C) 2009 OpenSourcery, LLC

    local-lib-deps is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by the
    Free Software Foundation; either version 2 of the License, or (at your
    option) any later version.

    local-lib-deps is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
    Public License for more details.

    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc.,
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

    local-lib-deps is packaged with a copy of the GNU General Public
    License. Please see docs/COPYING in this distribution.

POD ERRORS
    Hey! The above document had some coding errors, which are explained
    below:

    Around line 253:
        You forgot a '=back' before '=head1'

