AI-MicroStructure
view release on metacpan or search on metacpan
lib/AI/MicroStructure/MultiList.pm view on Meta::CPAN
:all
# names primes even
two
# names primes odd
three five seven
# names composites even
four six eight
# names composites odd
nine
# names other
zero one
=head1 DESCRIPTION
C<AI::MicroStructure::MultiList> is the base class for all structures
that are meant to return a random excerpt from a predefined list
I<divided in categories>.
The category is selected at construction time from:
=over 4
=item 1.
the given C<category> parameter,
=item 2.
the default category for the selected structure.
=back
Categories and sub-categories are separated by a C</> character.
=head1 METHODS
AI::MicroStructure::MultiList offers several methods, so that the subclasses
are easy to write (see full example in L<SYNOPSIS>):
=over 4
=item new( category => $category )
The constructor of a single instance. An instance will not repeat items
until the list is exhausted.
$meta = AI::MicroStructure::digits->new( category => 'primes' );
$meta = AI::MicroStructure::digits->new( category => 'primes/odd' );
The special category C<:all> will use all the items in all categories.
$meta = AI::MicroStructure::digits->new( category => ':all' );
If no C<category> parameter is given, C<AI::MicroStructure::MultiList>
will use the class default. If the class doesn't define a default,
then C<:all> is used.
=item init()
init() must be called when the subclass is loaded, so as to read the
__DATA__ section and fully initialise it.
=item name( $count )
Return $count names (default: C<1>).
Using C<0> will return the whole list in list context, and the size of the
list in scalar context (according to the C<category> parameter passed to the
constructor).
=item category()
Return the selected category for this instance.
=item categories()
Return the categories supported by the structure (except C<:all>).
=item has_category( $category )
Return a boolean value indicating if the structure contains the given category.
=item structure()
Return the structure name.
=back
=head1 AUTHOR
Philippe 'BooK' Bruhat, C<< <book@cpan.org> >>
=head1 COPYRIGHT & LICENSE
Copyright 2006 Philippe 'BooK' Bruhat, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
=cut
( run in 0.672 second using v1.01-cache-2.11-cpan-39bf76dae61 )