App-BoolFindGrep
view release on metacpan or search on metacpan
lib/App/BoolFindGrep/Bool.pm view on Meta::CPAN
{\N{LINE FEED}$1\N{LINE FEED}}gimsx;
s{\A\p{IsSpace}+}{}msx;
s{\p{IsSpace}+\z}{}msx;
s{\N{SPACE}*\N{LINE FEED}+\N{SPACE}*}
{\N{LINE FEED}}gmsx;
} ## end foreach (@expression)
my @token = map { split m{\N{LINE FEED}}msx } @expression;
@token = grep { defined && $_ ne q() } @token;
foreach my $token (@token) {
if ( $token eq qq(\N{LEFT PARENTHESIS})
|| $token eq qq(\N{RIGHT PARENTHESIS}) )
{
$token = [ q(PARENTHESIS), $token ];
}
elsif ( exists $self->operators->{uc $token} ) {
$token = [ q(OPERATOR), uc $token ],;
lib/App/BoolFindGrep/CLI.pm view on Meta::CPAN
}
}
return 1;
} ## end sub _implies_checker
sub _files_from_checker {
my $self = shift;
my $value = shift;
my $parameter = ( split m{::_(\S+)_checker\z}msx, ( caller 0 )[3] )[-1];
my $msg;
foreach ($value) {
if ( !/\A(?:-|stdin)\z/i ) {
if ( !-e ) {
$msg = sprintf q('--%s' => nonexistent file '%s'.),
$parameter, $value;
}
elsif ( !-f ) {
$msg = sprintf q('--%s' => irregular file '%s'.),
lib/App/BoolFindGrep/CLI.pm view on Meta::CPAN
$self->args->{files_delim} = qq(\N{LINE FEED});
return 1;
} ## end sub _files_from_checker
sub _find_type_checker {
my $self = shift;
my $value = shift;
my $parameter = ( split m{::_(\S+)_checker\z}msx, ( caller 0 )[3] )[-1];
my %type = (
glob => 1, #
literal => 1, #
regexp => 1, #
);
unless ( exists $type{$value} ) {
$self->_msg( sprintf q('--%s' => argument invalid '%s'.),
$parameter, $value );
return;
}
return 1;
} ## end sub _find_type_checker
sub _directory_checker {
my $self = shift;
my $values = shift;
my $parameter = ( split m{::_(\S+)_checker\z}msx, ( caller 0 )[3] )[-1];
my $msg;
foreach ( @{$values} ) {
if ( !-e ) {
$msg = sprintf q('--%s' => nonexistent directory '%s'.),
$parameter, $_;
}
elsif ( !-d ) {
$msg = sprintf q('--%s' => non-directory argument '%s'.),
$parameter, $_;
t/app-boolfindgrep-bool.t view on Meta::CPAN
my $method = q(parse_expr);
foreach my $test ( shuffle @test ) {
my ( $input, $expected ) = @$test;
my $testname = sprintf q(%s:'%s'), $method, $input;
$obj->slash_as_delim(1);
$obj->expression($input);
local $EVAL_ERROR;
eval { $obj->$method(); };
my $output
= $EVAL_ERROR
? [ ( split m{:}msx, $EVAL_ERROR )[0] ]
: $obj->parse();
is_deeply( $output, $expected, $testname );
}
done_testing();
# Local Variables:
# mode: perl
# coding: utf-8-unix
# End:
( run in 0.689 second using v1.01-cache-2.11-cpan-9bca49b1385 )