
# Wigwam DirectiveSet plugin

package Text::Wigwam::Directives;
use strict;
no warnings q/recursion/;

our $VERSION = '0.01';

use Text::Wigwam::Library::Assignment( q/:all/ );
use Text::Wigwam::Library::Character( q/:all/ );
use Text::Wigwam::Library::Comparators( q/:all/ );
use Text::Wigwam::Library::Conditionals( q/:all/ );
use Text::Wigwam::Library::Datatype( q/:all/ );
use Text::Wigwam::Library::Debug( q/:all/ );
use Text::Wigwam::Library::Filter( q/:all/ );
use Text::Wigwam::Library::Iterators( q/:all/ );
use Text::Wigwam::Library::Math( q/:all/ );
use Text::Wigwam::Library::Misc( q/:all/ );
use Text::Wigwam::Library::Procedure( q/:all/ );
use Text::Wigwam::Library::Sets( q/:all/ );
use Text::Wigwam::Library::Struct( q/:all/ );
use Text::Wigwam::Library::System( q/:all/ );
use Text::Wigwam::Library::Time( q/:all/ );

return sub {
     # Initialize used libraries
    $_[0]->init_libs(
      qw/
        Conditionals
        Debug
        Iterators
        Procedure
        System
        Math
        Assignment
        Sets
        Struct
        Datatype
        Comparators
        Time
        Character
        Misc
      /
    );

     # Optionally return desired aliases
    return (
        '&' => '#call',
        '!' => '#not',
    );
};

=head1 Name

Text::Wigwam::Plugins::DirectiveSet - A Wigwam plug-in.

=head1 Description

This plug-in is the default plug-in used by the L<Wigwam|Text::Wigwam>
templating system. It loads all directives from the following libraries into
the base of the directory tree (C<Text::Wigwam::Directives>).

=head1 Libraries

=over 4

=item *

L<Assignment|Text::Wigwam::Library::Assignment>

=item *

L<Character|Text::Wigwam::Library::Character>

=item *

L<Comparators|Text::Wigwam::Library::Comparators>

=item *

L<Conditionals|Text::Wigwam::Library::Conditionals>

=item *

L<Datatype|Text::Wigwam::Library::Datatype>

=item *

L<Debug|Text::Wigwam::Library::Debug>

=item *

L<Iterators|Text::Wigwam::Library::Iterators>

=item *

L<Math|Text::Wigwam::Library::Math>

=item *

L<Misc|Text::Wigwam::Library::Misc>

=item *

L<Procedure|Text::Wigwam::Library::Procedure>

=item *

L<Sets|Text::Wigwam::Library::Sets>

=item *

L<Struct|Text::Wigwam::Library::Struct>

=item *

L<System|Text::Wigwam::Library::System>

=item *

L<Time|Text::Wigwam::Library::Time>

=back

=cut
