The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package XAS::System;

our $VERSION = '0.01';

use Badger::Factory::Class
  version    => $VERSION,
  item       => 'module',
  path       => 'XAS::System XAS::Lib',
  modules => {
      logger      => 'XAS::System::Logger',
      alert       => 'XAS::System::Alert',
      email       => 'XAS::System::Email',
      environment => 'XAS::System::Environment',
      spool       => 'XAS::Lib::Spool',
  }
;

1;

__END__
  
=head1 NAME

XAS::System - A factory system for the XAS environment

=head1 SYNOPSIS

You can use this module in the following manner.

 use XAS::System;

 my $xas = XAS::System->module('environment');

 ... or ...

 my $xas = XAS:System->module('Environment');

Either of the above statements will load the XAS::System::Environment module.

=head1 DESCRIPTION

This module is a factory system for the XAS environment. It will load and
initialize modules on demand. The advantage is that you don't need to load
all your modules at the beginning of your program. You also don't need to
know where individual modules live. And this system can provide a nice alias 
for long module names. This should lead to cleaner more readable programs.

=head1 SHORTCUTS

The following are shortcut names that can be used.

=head2 logger

This will load the XAS::System::Logger module.

=head2 alert

This will load the XAS::System::Alert module.

=head2 email

This will load the XAS::System::Email module.

=head2 enviroment

This will load the XAS::System::Environment module.

=head2 spool

This will load the XAS::Lib::Spool module.

=head1 METHODS

=head2 module

This method loads the named module and passes any parameters to that module.

=head1 SEE ALSO

L<XAS|XAS>

=head1 AUTHOR

Kevin L. Esteb, E<lt>kevin@kesteb.usE<gt>

=head1 COPYRIGHT AND LICENSE

Copyright (C) 2012 by Kevin L. Esteb

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.8 or,
at your option, any later version of Perl 5 you may have available.

=cut