package Analizo::Batch::Directories;
use strict;
use warnings;
use parent qw(Analizo::Batch Class::Accessor::Fast);
use Analizo::Batch::Job::Directories;
__PACKAGE__->mk_accessors(qw(directories));
sub new {
my ($class, @directories) = @_;
my $self = $class->SUPER::new;
if (@directories < 1) {
@directories = glob('*');
}
@directories = grep { -d $_ } @directories;
$self->directories(\@directories);
$self->{index} = 0;
return $self;
}
sub fetch_next {
my ($self) = @_;
my $next_directory = $self->{directories}->[$self->{index}];
if ($next_directory) {
my $next_job = Analizo::Batch::Job::Directories->new($next_directory);
$self->{index} += 1;
return $next_job;
}
return undef;
}
sub count {
my ($self) = @_;
return scalar(@{$self->{directories}});
}
1;