NAME

Set::Associate::RefillItems - Pool re-population methods

VERSION

version 0.004001

DESCRIPTION

This class implements a generalized interface for creating objects which populate pools.

What you're mostly interested in are "CLASS METHODS", which are shorthand (somewhat) for loading and constructing many of the Set::Associate::RefillItems::* family.

However, if your code needs to design its own version on the fly, this interface should work:

my $populator = Set::Associate::RefillItems->new(
    name => 'foo',
    items => [  .... ],
    code => sub {
        my ( $self, $sa ) = @_;
        ....
    },
);
my $sa = Set::Associate->new(
    on_item_empty => $populator ,
    ...
);

CONSTRUCTOR ARGUMENTS

name

required Str

code

required CodeRef

items

required ArrayRef

CLASS METHODS

linear

Populate from items each time.

See Set::Associate::RefillItems::Linear for details.

my $sa = Set::Associate->new(
    ...
    on_items_empty => Set::Associate::RefillItems->linear( items => [ ... ])
);

or ...

use Set::Associate::RefillItems::Linear;
my $sa = Set::Associate->new(
    ...
    on_items_empty => Set::Associate::RefillItems::Linear->new( items => [ ... ])
);

shuffle

Populate with a shuffled version of items

See Set::Associate::RefillItems::Shuffle for details.

my $sa = Set::Associate->new(
    ...
    on_items_empty => Set::Associate::RefillItems->shuffle( items => [ ... ]);
);

or ...

use Set::Associate::RefillItems::Shuffle;
my $sa = Set::Associate->new(
    ...
    on_items_empty => Set::Associate::RefillItems::Shuffle->new( items => [ ... ])
);

ATTRIBUTES

name

code

items

ATTRIBUTE HANDLES

get_all

Invokes Trait:Code/execute_method on "code"

has_items

Predicate method for "items"

AUTHOR

Kent Fredric <kentnl@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Kent Fredric <kentfredric@gmail.com>.

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