Algorithm-IncludeExclude
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
$args{base} ||= $base_path;
$class =~ s/^\Q$args{prefix}\E:://;
$args{name} ||= $class;
$args{version} ||= $class->VERSION;
unless ( $args{path} ) {
$args{path} = $args{name};
$args{path} =~ s!::!/!g;
}
$args{file} ||= "$args{base}/$args{prefix}/$args{path}.pm";
bless( \%args, $class );
}
sub call {
my ($self, $method) = @_;
my $obj = $self->load($method) or return;
splice(@_, 0, 2, $obj);
goto &{$obj->can($method)};
}
sub load {
inc/Module/Install/Base.pm view on Meta::CPAN
sub new {
my ($class, %args) = @_;
foreach my $method ( qw(call load) ) {
*{"$class\::$method"} = sub {
shift()->_top->$method(@_);
} unless defined &{"$class\::$method"};
}
bless( \%args, $class );
}
#line 61
sub AUTOLOAD {
my $self = shift;
local $@;
my $autoload = eval { $self->_top->autoload } or return;
goto &$autoload;
}
inc/Module/Install/Base.pm view on Meta::CPAN
sub is_admin {
$_[0]->admin->VERSION;
}
sub DESTROY {}
package Module::Install::Base::FakeAdmin;
my $Fake;
sub new { $Fake ||= bless(\@_, $_[0]) }
sub AUTOLOAD {}
sub DESTROY {}
# Restore warning handler
BEGIN {
$SIG{__WARN__} = $SIG{__WARN__}->();
}
inc/Module/Install/Metadata.pm view on Meta::CPAN
sub version_from {
my ( $self, $file ) = @_;
require ExtUtils::MM_Unix;
$self->version( ExtUtils::MM_Unix->parse_version($file) );
}
sub abstract_from {
my ( $self, $file ) = @_;
require ExtUtils::MM_Unix;
$self->abstract(
bless(
{ DISTNAME => $self->name },
'ExtUtils::MM_Unix'
)->parse_abstract($file)
);
}
sub _slurp {
my ( $self, $file ) = @_;
local *FH;
lib/Algorithm/IncludeExclude.pm view on Meta::CPAN
# path1->path2 has value value2
# path3 is undefined
# etc
sub new {
my $class = shift;
my $args = shift || {};
$args->{join} ||= ''; # avoid warnings
$args->{regexes} = {};
my $self = [undef, {}, $args];
return bless $self => $class;
}
# walks down the tree and sets the value of path to value
sub _set {
my $tree = shift;
my $path = shift;
my $value = shift;
my $regexes = $tree->[2]->{regexes};
lib/Algorithm/IncludeExclude.pm view on Meta::CPAN
Evaluate whether C<@path> should be included (true) or excluded
(false). If the include/exclude status cannot be determined (no rules
match, more than one regex matches), C<undef> is returned.
=cut
sub evaluate {
my $self = shift;
my @path = @_;
my $value = $self->[0];
my $tree = [@{$self}]; # unbless
# "constants" (in here anyway)
my %REGEXES = %{$self->[2]->{regexes}};
my $JOIN = $self->[2]->{join};
while(my $head = shift @path){
# get regexes at this level;
my @regexes =
grep { defined }
map { $REGEXES{$_} }
( run in 0.470 second using v1.01-cache-2.11-cpan-de7293f3b23 )