package Analizo::FilenameFilter;
use strict;
use warnings;
sub new {
my ($package, @options) = @_;
my $self = {
regex => '.',
reverse => 0,
@options
};
return bless $self, __PACKAGE__;
}
sub exclude {
my ($package, @paths) = @_;
my $regex = sprintf("^(./)?(%s)", join('|', @paths));
return $package->new(regex => $regex, reverse => 1);
}
sub matches {
my ($self, $filename) = @_;
my $match = ($filename =~ /$self->{regex}/);
return $self->{reverse} ? !$match : $match;
}
1;