view release on metacpan or search on metacpan
t/boilerplate.t view on Meta::CPAN
use warnings FATAL => 'all';
use Test::More;
plan tests => 3;
sub not_in_file_ok {
my ($filename, %regex) = @_;
open( my $fh, '<', $filename )
or die "couldn't open $filename for reading: $!";
my %violated;
t/boilerplate.t view on Meta::CPAN
}
}
sub module_boilerplate_ok {
my ($module) = @_;
not_in_file_ok($module =>
'the great new $MODULENAME' => qr/ - The great new /,
'boilerplate description' => qr/Quick summary of what the module/,
'stub function definition' => qr/function[12]/,
);
}
TODO: {
local $TODO = "Need to replace the boilerplate text";
not_in_file_ok(README =>
"The README is used..." => qr/The README is used/,
"'version information here'" => qr/to provide version information/,
);
not_in_file_ok(Changes =>
"placeholder date/time" => qr(Date/time)
);
module_boilerplate_ok('lib/App/VOJournal.pm');
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/VTide/Command/Run.pm view on Meta::CPAN
my $count = 0;
GLOB:
while ( my $glob = shift @globs ) {
last if $count++ > 30;
my ($not_glob) = $glob =~ /^[!](.*)$/;
if ($not_glob) {
my %not_files = map { $_ => 1 }
$self->_globs2files( $groups, $helper, $recurse, $not_glob );
@files = grep { !$not_files{$_} } @files;
next GLOB;
}
elsif ( $groups->{$glob} ) {
unshift @globs, @{ $groups->{$glob} };
next GLOB;
view all matches for this distribution
view release on metacpan or search on metacpan
t/boilerplate.t view on Meta::CPAN
use strict;
use warnings;
use Test::More tests => 3;
sub not_in_file_ok {
my ($filename, %regex) = @_;
open( my $fh, '<', $filename )
or die "couldn't open $filename for reading: $!";
my %violated;
t/boilerplate.t view on Meta::CPAN
}
}
sub module_boilerplate_ok {
my ($module) = @_;
not_in_file_ok($module =>
'the great new $MODULENAME' => qr/ - The great new /,
'boilerplate description' => qr/Quick summary of what the module/,
'stub function definition' => qr/function[12]/,
);
}
TODO: {
local $TODO = "Need to replace the boilerplate text";
not_in_file_ok(README =>
"The README is used..." => qr/The README is used/,
"'version information here'" => qr/to provide version information/,
);
not_in_file_ok(Changes =>
"placeholder date/time" => qr(Date/time)
);
module_boilerplate_ok('lib/App/VW.pm');
view all matches for this distribution
view release on metacpan or search on metacpan
t/boilerplate.t view on Meta::CPAN
use lib qw(
/home/vj504j/App-Validation-Automation-0.01/lib /home/vj504j/perllib
);
use Test::More tests => 3;
sub not_in_file_ok {
my ($filename, %regex) = @_;
open( my $fh, '<', $filename )
or die "couldn't open $filename for reading: $!";
my %violated;
t/boilerplate.t view on Meta::CPAN
}
}
sub module_boilerplate_ok {
my ($module) = @_;
not_in_file_ok($module =>
'the great new $MODULENAME' => qr/ - The great new /,
'boilerplate description' => qr/Quick summary of what the module/,
'stub function definition' => qr/function[12]/,
);
}
TODO: {
local $TODO = "Need to replace the boilerplate text";
not_in_file_ok(README =>
"The README is used..." => qr/The README is used/,
"'version information here'" => qr/to provide version information/,
);
not_in_file_ok(Changes =>
"placeholder date/time" => qr(Date/time)
);
module_boilerplate_ok('lib/App/Validation/Automation.pm');
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/VirtualBoxUtils.pm view on Meta::CPAN
# return [304,
# $num_start_requests ? "All browsers already have processes" :
# "Not ${which_action}ing any browsers"];
# }
# my (%alive, %not_alive);
# if ($args{-dry_run}) {
# %alive = %started;
# } else {
# for my $wait_time (2, 5, 10) {
# %alive = ();
# %not_alive = ();
# log_trace "Checking if the started browsers are alive ...";
# for my $browser (keys %pbs) {
# if ($pbs{$browser}->alive) {
# $alive{$browser}++;
# } else {
# $not_alive{$browser}++;
# }
# }
# last if scalar(keys %alive) == $num_started;
# }
# }
# my $num_alive = keys %alive;
# my $num_not_alive = keys %not_alive;
# my $status;
# my $reason;
# my $msg;
# my $verb_started = $which_action eq 'restart' ? 'Started/restarted' : 'Started';
lib/App/VirtualBoxUtils.pm view on Meta::CPAN
# $status = 200;
# $reason = "OK";
# $msg = "$verb_started ".join(", ", sort keys %alive);
# } elsif ($num_alive == 0) {
# $status = 500;
# $reason = $msg = "Can't start any browser (".join(", ", %not_alive).")";
# } else {
# $status = 200;
# $reason = "OK";
# $msg = "$verb_started ".join(", ", sort keys %alive)."; but failed to start ".
# join(", ", sort keys %not_alive);
# }
# $fail{$_} //= "Can't start" for keys %not_alive;
# [$status, $msg, undef, {
# 'func.outputs' => \%outputs,
# ($which_action eq 'start' ? ('func.has_processes' => [sort keys %has_processes]) : ()),
# 'func.started' => [sort grep {!$terminated{$_}} keys %alive],
view all matches for this distribution
view release on metacpan or search on metacpan
example/blog/archives/icon_test/textfile
example/blog/archives/icon_test/textfile.icon.png
example/blog/archives/image_test/index
example/blog/archives/image_test/machin_stderr.png
example/blog/archives/include_test/index
example/blog/archives/noexpand_test/do_not_expand_me
example/blog/archives/noexpand_test/index
example/blog/archives/noexpand_test/wrt-noexpand.prop
example/blog/archives/prop_value_test/foo.prop
example/blog/archives/tags_test/tag.animals.platypus.prop
example/blog/archives/tags_test/tag.topics.example.prop
example/blog/public/icon_test/textfile/index.html
example/blog/public/image_test/index.html
example/blog/public/image_test/machin_stderr.png
example/blog/public/include_test/index.html
example/blog/public/index.html
example/blog/public/noexpand_test/do_not_expand_me/index.html
example/blog/public/noexpand_test/index.html
example/blog/public/noexpand_test/wrt-noexpand.prop
example/blog/templates/default
example/blog/wrt.json
example/flat_site/pages/index
view all matches for this distribution
view release on metacpan or search on metacpan
xt/boilerplate.t view on Meta::CPAN
use warnings;
use Test::More;
plan tests => 3;
sub not_in_file_ok {
my ($filename, %regex) = @_;
open( my $fh, '<', $filename )
or die "couldn't open $filename for reading: $!";
my %violated;
xt/boilerplate.t view on Meta::CPAN
}
}
sub module_boilerplate_ok {
my ($module) = @_;
not_in_file_ok($module =>
'the great new $MODULENAME' => qr/ - The great new /,
'boilerplate description' => qr/Quick summary of what the module/,
'stub function definition' => qr/function[12]/,
);
}
TODO: {
local $TODO = "Need to replace the boilerplate text";
not_in_file_ok(README =>
"The README is used..." => qr/The README is used/,
"'version information here'" => qr/to provide version information/,
);
not_in_file_ok(Changes =>
"placeholder date/time" => qr(Date/time)
);
module_boilerplate_ok('lib/App/Waf.pm');
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/War.pm view on Meta::CPAN
}
=head2 $war->rank
Starts the process of uniquely ordering the graph vertices. This method
calls method C<tsort_not_unique> until it returns false, I<i.e.> we have a
unique topo sort.
=cut
sub rank {
my $self = shift;
while (my $v = $self->tsort_not_unique) {
$self->compare($v->[0], $v->[1]);
}
return $self;
}
=head2 $war->tsort_not_unique
This method returns a true value (more on this later) if the graph
currently lacks a unique topo sort. If the graph B<has> a unique sort, the
"war" is over, and results should be reported.
lib/App/War.pm view on Meta::CPAN
This property of the topological sort is used to ensure that we have a
unique ordering of the "combatants" in our "war".
=cut
sub tsort_not_unique {
my $self = shift;
# search for unordered items by calculating the topological sort and
# verifying that adjacent items are connected by a directed edge
view all matches for this distribution
view release on metacpan or search on metacpan
xt/boilerplate.t view on Meta::CPAN
use warnings;
use Test::More;
plan tests => 4;
sub not_in_file_ok {
my ($filename, %regex) = @_;
open( my $fh, '<', $filename )
or die "couldn't open $filename for reading: $!";
my %violated;
xt/boilerplate.t view on Meta::CPAN
}
}
sub module_boilerplate_ok {
my ($module) = @_;
not_in_file_ok($module =>
'the great new $MODULENAME' => qr/ - The great new /,
'boilerplate description' => qr/Quick summary of what the module/,
'stub function definition' => qr/function[12]/,
);
}
not_in_file_ok(README =>
"The README is used..." => qr/The README is used/,
"'version information here'" => qr/to provide version information/,
);
not_in_file_ok(Changes =>
"placeholder date/time" => qr(Date/time)
);
module_boilerplate_ok('lib/App/WatchLater.pm');
module_boilerplate_ok('lib/App/WatchLater/YouTube.pm');
view all matches for this distribution
view release on metacpan or search on metacpan
script/list-wordlist-modules view on Meta::CPAN
detail (see --detail)
dynamic (see --dynamic)
dynamic.in (see --dynamic-in)
dynamic.is (see --dynamic-is)
dynamic.isnt (see --dynamic-isnt)
dynamic.not_in (see --dynamic-not-in)
exclude_fields (see --exclude-field)
fields (see --field)
format (see --format)
naked_res (see --naked-res)
num_params (see --num-params)
num_params.in (see --num-params-in)
num_params.is (see --num-params-is)
num_params.isnt (see --num-params-isnt)
num_params.not_in (see --num-params-not-in)
num_words (see --num-words)
num_words.in (see --num-words-in)
num_words.is (see --num-words-is)
num_words.isnt (see --num-words-isnt)
num_words.not_in (see --num-words-not-in)
query (see --query)
random (see --random)
result_limit (see --result-limit)
result_start (see --result-start)
sort (see --sort)
script/list-wordlist-modules view on Meta::CPAN
sort.in (see --sort-in)
sort.is (see --sort-is)
sort.isnt (see --sort-isnt)
sort.max (see --sort-max)
sort.min (see --sort-min)
sort.not_contains (see --sort-not-contains)
sort.not_in (see --sort-not-in)
sort.xmax (see --sort-xmax)
sort.xmin (see --sort-xmin)
with_field_names (see --with-field-names)
wordlist (see --wordlist)
wordlist.contains (see --wordlist-contains)
wordlist.in (see --wordlist-in)
wordlist.is (see --wordlist-is)
wordlist.isnt (see --wordlist-isnt)
wordlist.max (see --wordlist-max)
wordlist.min (see --wordlist-min)
wordlist.not_contains (see --wordlist-not-contains)
wordlist.not_in (see --wordlist-not-in)
wordlist.xmax (see --wordlist-xmax)
wordlist.xmin (see --wordlist-xmin)
=head1 ENVIRONMENT
view all matches for this distribution
view release on metacpan or search on metacpan
t/boilerplate.t view on Meta::CPAN
use strict;
use warnings;
use Test::More tests => 3;
sub not_in_file_ok {
my ($filename, %regex) = @_;
open my $fh, "<", $filename
or die "couldn't open $filename for reading: $!";
my %violated;
t/boilerplate.t view on Meta::CPAN
} else {
pass("$filename contains no boilerplate text");
}
}
not_in_file_ok(README =>
"The README is used..." => qr/The README is used/,
"'version information here'" => qr/to provide version information/,
);
not_in_file_ok(Changes =>
"placeholder date/time" => qr(Date/time)
);
sub module_boilerplate_ok {
my ($module) = @_;
not_in_file_ok($module =>
'the great new $MODULENAME' => qr/ - The great new /,
'boilerplate description' => qr/Quick summary of what the module/,
'stub function definition' => qr/function[12]/,
);
}
view all matches for this distribution
view release on metacpan or search on metacpan
t/unit/Script.t view on Meta::CPAN
like($found, qr/\Q$marker\E$/, 'path ends with marker filename');
unlink $marker;
# Non-existent file returns undef
my $missing = find_in_updir('.nonexistent_file_that_should_not_exist');
is($missing, undef, 'returns undef for missing file');
};
subtest 'script and module accessors' => sub {
# Before do_begin, these depend on package state. Just verify they are callable.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/YoutubeDlIf.pm view on Meta::CPAN
"--log-file or put the log file in one of: ".
(join ", ", @paths) unless $path;
$path;
},
},
if_duration_not_shorter_than => {
#schema => 'duration*', # XXX duration coercer parses 01:00 as 1 hour 0 minutes instead of 1 minute 0 seconds
schema => 'str*',
tags => ['category:filtering'],
},
if_duration_not_longer_than => {
#schema => 'duration*',
schema => 'str*',
tags => ['category:filtering'],
},
restart_if_no_output_after => {
schema => 'duration*',
tags => ['category:restart'],
},
);
our %arg_if_not_yet = (
if_not_yet => {
summary => 'If set, only download videos that are not yet downloaded',
schema => 'bool',
description => <<'_',
When set to true, youtube-dl-if will first extract downloaded video ID's from
lib/App/YoutubeDlIf.pm view on Meta::CPAN
This is a wrapper for **youtube-dl**.
_
args => {
%args_common,
%arg_if_not_yet,
},
args_rels => {
#dep_any => [log_file => ['if_not_yet']], # XXX currently will fail if if_not_yet not specified because of the log_file's default
},
deps => {
prog => 'youtube-dl',
},
};
lib/App/YoutubeDlIf.pm view on Meta::CPAN
last FILTER if $arg =~ /\A--?\w+/ && $arg !~ $re_video_id;
my $video_id = YouTube::Util::extract_youtube_video_id($arg);
if ($video_id) {
log_trace "Argument %s has video ID %s", $arg, $video_id;
if ($args{if_not_yet}) {
if (my $filename = _search_id_in_log_file($video_id, $args{log_file})) {
log_info "Argument %s (video ID %s) has been downloaded (%s), skipped", $arg, $video_id, $filename;
next ARG;
} else {
log_trace "Argument %s (video ID %s) is not in downloaded list", $arg, $video_id;
}
}
}
if (defined $args{if_duration_not_shorter_than} || defined $args{if_duration_not_longer_than}) {
my $min_secs = _dur2sec($args{if_duration_not_shorter_than});
my $max_secs = _dur2sec($args{if_duration_not_longer_than});
my $video_dur = readpipe({log=>1, die=>1}, "youtube-dl --no-playlist --get-duration -- '$arg' 2>/dev/null");
my $video_secs = _dur2sec($video_dur);
if (defined $min_secs && $video_secs < $min_secs) {
log_info "Argument %s (video ID %s, duration %s) is too short (min %s), skipped", $arg, $video_id, $video_dur, $args{if_duration_not_shorter_than};
next ARG;
}
if (defined $max_secs && $video_secs > $max_secs) {
log_info "Argument %s (video ID %s, duration %s) is too long (min %s), skipped", $arg, $video_id, $video_dur, $args{if_duration_not_longer_than};
next ARG;
}
}
} # FILTER
push @argv_for_youtube_dl, $arg;
lib/App/YoutubeDlIf.pm view on Meta::CPAN
system({log=>1, die=>1}, "youtube-dl", @argv_for_youtube_dl);
}
[200];
}
$SPEC{youtube_dl_if_not_yet} = {
v => 1.1,
summary => 'Download videos using youtube-dl if not already downloaded',
description => <<'_',
This is a shortcut for:
lib/App/YoutubeDlIf.pm view on Meta::CPAN
},
deps => {
prog => 'youtube-dl',
},
};
sub youtube_dl_if_not_yet {
my %args = @_;
youtube_dl_if(if_not_yet=>1, %args);
}
1;
# ABSTRACT: Download videos using youtube-dl with extra selection/filtering
lib/App/YoutubeDlIf.pm view on Meta::CPAN
Arguments ('*' denotes required arguments):
=over 4
=item * B<if_duration_not_longer_than> => I<str>
=item * B<if_duration_not_shorter_than> => I<str>
=item * B<if_not_yet> => I<bool>
If set, only download videos that are not yet downloaded.
When set to true, youtube-dl-if will first extract downloaded video ID's from
filenames or URL's or video ID's listed in a text file (specified via
lib/App/YoutubeDlIf.pm view on Meta::CPAN
Return value: (any)
=head2 youtube_dl_if_not_yet
Usage:
youtube_dl_if_not_yet(%args) -> [status, msg, payload, meta]
Download videos using youtube-dl if not already downloaded.
This is a shortcut for:
lib/App/YoutubeDlIf.pm view on Meta::CPAN
Arguments ('*' denotes required arguments):
=over 4
=item * B<if_duration_not_longer_than> => I<str>
=item * B<if_duration_not_shorter_than> => I<str>
=item * B<log_file> => I<str> (default: "/home/u1/notes/download-logs.org")
File that contains list of download filenames.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/YoutubeDlIfNotYet.pm view on Meta::CPAN
};
$cache->{$id};
}
$SPEC{youtube_dl_if_not_yet} = {
v => 1.1,
summary => '(DEPRECATED) Download videos using youtube-dl only if videos have not been donwnloaded yet',
description => <<'_',
This is a wrapper for **youtube-dl**; it tries to extract downloaded video ID's
lib/App/YoutubeDlIfNotYet.pm view on Meta::CPAN
},
deps => {
prog => 'youtube-dl',
},
};
sub youtube_dl_if_not_yet {
my %args = @_;
my @argv_for_youtube_dl;
for my $arg (@{$args{urls_or_ids}}) {
my $video_id = YouTube::Util::extract_youtube_video_id($arg);
lib/App/YoutubeDlIfNotYet.pm view on Meta::CPAN
=head1 DESCRIPTION
=head1 FUNCTIONS
=head2 youtube_dl_if_not_yet
Usage:
youtube_dl_if_not_yet(%args) -> [status, msg, payload, meta]
(DEPRECATED) Download videos using youtube-dl only if videos have not been donwnloaded yet.
This is a wrapper for B<youtube-dl>; it tries to extract downloaded video ID's
from filenames or URL's or video ID's listed in a text file, e.g.:
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/ZodiacUtils/Table.pm view on Meta::CPAN
=item * B<earthly_branch.min> => I<str>
Only return records where the 'earthly_branch' field is greater than or equal to specified value.
=item * B<earthly_branch.not_contains> => I<str>
Only return records where the 'earthly_branch' field does not contain specified text.
=item * B<earthly_branch.not_in> => I<array[str]>
Only return records where the 'earthly_branch' field is not in the specified values.
=item * B<earthly_branch.xmax> => I<str>
lib/App/ZodiacUtils/Table.pm view on Meta::CPAN
=item * B<element.min> => I<str>
Only return records where the 'element' field is greater than or equal to specified value.
=item * B<element.not_contains> => I<str>
Only return records where the 'element' field does not contain specified text.
=item * B<element.not_in> => I<array[str]>
Only return records where the 'element' field is not in the specified values.
=item * B<element.xmax> => I<str>
lib/App/ZodiacUtils/Table.pm view on Meta::CPAN
=item * B<en_animal.min> => I<str>
Only return records where the 'en_animal' field is greater than or equal to specified value.
=item * B<en_animal.not_contains> => I<str>
Only return records where the 'en_animal' field does not contain specified text.
=item * B<en_animal.not_in> => I<array[str]>
Only return records where the 'en_animal' field is not in the specified values.
=item * B<en_animal.xmax> => I<str>
lib/App/ZodiacUtils/Table.pm view on Meta::CPAN
=item * B<end_date.min> => I<date>
Only return records where the 'end_date' field is greater than or equal to specified value.
=item * B<end_date.not_in> => I<array[date]>
Only return records where the 'end_date' field is not in the specified values.
=item * B<end_date.xmax> => I<date>
lib/App/ZodiacUtils/Table.pm view on Meta::CPAN
=item * B<heavenly_stem.min> => I<str>
Only return records where the 'heavenly_stem' field is greater than or equal to specified value.
=item * B<heavenly_stem.not_contains> => I<str>
Only return records where the 'heavenly_stem' field does not contain specified text.
=item * B<heavenly_stem.not_in> => I<array[str]>
Only return records where the 'heavenly_stem' field is not in the specified values.
=item * B<heavenly_stem.xmax> => I<str>
lib/App/ZodiacUtils/Table.pm view on Meta::CPAN
=item * B<start_date.min> => I<date>
Only return records where the 'start_date' field is greater than or equal to specified value.
=item * B<start_date.not_in> => I<array[date]>
Only return records where the 'start_date' field is not in the specified values.
=item * B<start_date.xmax> => I<date>
lib/App/ZodiacUtils/Table.pm view on Meta::CPAN
=item * B<yin_yang.min> => I<str>
Only return records where the 'yin_yang' field is greater than or equal to specified value.
=item * B<yin_yang.not_contains> => I<str>
Only return records where the 'yin_yang' field does not contain specified text.
=item * B<yin_yang.not_in> => I<array[str]>
Only return records where the 'yin_yang' field is not in the specified values.
=item * B<yin_yang.xmax> => I<str>
lib/App/ZodiacUtils/Table.pm view on Meta::CPAN
=item * B<zh_animal.min> => I<str>
Only return records where the 'zh_animal' field is greater than or equal to specified value.
=item * B<zh_animal.not_contains> => I<str>
Only return records where the 'zh_animal' field does not contain specified text.
=item * B<zh_animal.not_in> => I<array[str]>
Only return records where the 'zh_animal' field is not in the specified values.
=item * B<zh_animal.xmax> => I<str>
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/ZofCMS/Plugin/FormChecker.pm view on Meta::CPAN
if ( $rule->{must_match} ) {
return $self->_fail( $name, 'must_match_error', $rule )
if $value !~ /$rule->{must_match}/;
}
if ( $rule->{must_not_match} ) {
return $self->_fail( $name, 'must_not_match_error', $rule )
if $value =~ /$rule->{must_not_match}/;
}
if ( $rule->{code} ) {
return $self->_fail( $name, 'code_error', $rule )
unless $rule->{code}->( $value, map $self->$_, qw/template query config/ );
lib/App/ZofCMS/Plugin/FormChecker.pm view on Meta::CPAN
num_error => "Parameter $name must contain digits only",
min_error => "Parameter $name must be at least $rule->{min} characters long",
max_error => "Parameter $name cannot be longer than $rule->{max} characters",
code_error => "Parameter $name contains incorrect data",
must_match_error => "Parameter $name contains incorrect data",
must_not_match_error => "Parameter $name contains incorrect data",
param_error => "Parameter $name does not match parameter $rule->{param}",
either_or_error => "Parameter $name must contain data if other parameters are not set",
valid_values_error
=> "Parameter $name must be " . do {
my $last = pop @{ $rule->{valid_values} || [''] };
lib/App/ZofCMS/Plugin/FormChecker.pm view on Meta::CPAN
param3 => [ qw/optional num/ ],
param4 => {
optional => 1,
select => 1,
must_match => qr/foo|bar/,
must_not_match => qr/foos/,
must_match_error => 'Param4 must contain either foo or bar but not foos',
param => 'param2',
},
param5 => {
valid_values => [ qw/foo bar baz/ ],
lib/App/ZofCMS/Plugin/FormChecker.pm view on Meta::CPAN
param3 => [ qw/optional num/ ],
param4 => {
optional => 1,
select => 1,
must_match => qr/foo|bar/,
must_not_match => qr/foos/,
must_match_error => 'Param4 must contain either foo or bar but not foos',
},
param5 => {
valid_values => [ qw/foo bar baz/ ],
valid_values_error => 'Param5 must be foo, bar or baz',
lib/App/ZofCMS/Plugin/FormChecker.pm view on Meta::CPAN
param3 => [ qw/optional num/ ],
param4 => {
optional => 1,
select => 1,
must_match => qr/foo|bar/,
must_not_match => qr/foos/,
must_match_error => 'Param4 must contain either foo or bar but not foos',
},
param5 => {
valid_values => [ qw/foo bar baz/ ],
valid_values_error => 'Param5 must be foo, bar or baz',
lib/App/ZofCMS/Plugin/FormChecker.pm view on Meta::CPAN
name => 'Parameter', # the name of this param to use in error messages
num => 1, # value must be numbers-only
optional => 1, # parameter is optional
either_or => [ qw/foo bar baz/ ], # param or foo or bar or baz must be set
must_match => qr/foo/, # value must match given regex
must_not_match => qr/bar/, # value must NOT match the given regex
max => 20, # value must not exceed 20 characters in length
min => 3, # value must be more than 3 characters in length
valid_values => [ qw/foo bar baz/ ], # value must be one from the given list
code => sub { time() %2 }, # return from the sub determines pass/fail
select => 1, # flag for "filling", see no_fill key above
param => 'param1',
num_error => 'Numbers only!', # custom error if num rule failed
mandatory_error => '', # same for if parameter is missing and not optional.
must_match_error => '', # same for must_match rule
must_not_match_error => '', # same for must_not_match_rule
max_error => '', # same for max rule
min_error => '', # same for min rule
code_error => '', # same for code rule
either_or_error => '', # same for either_or rule
valid_values_error => '', # same for valid_values rule
lib/App/ZofCMS/Plugin/FormChecker.pm view on Meta::CPAN
must_match => qr/foo/,
Takes a regex (C<qr//>) as a value. The query parameter's value must match this regex.
=head4 C<must_not_match>
must_not_match => qr/bar/,
Takes a regex (C<qr//>) as a value. The query parameter's value must B<NOT> match this regex.
=head4 C<max>
lib/App/ZofCMS/Plugin/FormChecker.pm view on Meta::CPAN
must_match_error => 'Must match me!',
This is the error for C<must_match> rule. B<Defaults to:>
C<Parameter $name contains incorrect data>
=head4 C<must_not_match_error>
must_not_match_error => 'Cannot has me!',
This is the error for C<must_not_match> rule. B<Defaults to:>
C<Parameter $name contains incorrect data>
=head4 C<max_error>
max_error => 'Too long!',
view all matches for this distribution
view release on metacpan or search on metacpan
#@plural{@no_change} = @no_change;
#
#
#
#
#my @not_plural = (qw/
#Aries
#Charles
#Gonzales
#Hades
#Hercules
#thus
#various
#yes
#/);
#
#my %not_plural;
#
#@not_plural{@not_plural} = (1) x @not_plural;
#
#
#
#
#
#
#sub to_singular
#{
# my ($word) = @_;
# my $singular = $word;
# if (! $not_plural{$word}) {
# if ($plural{$word}) {
# $singular = $plural{$word};
# }
# elsif ($word =~ /s$/) {
# if ($word =~ /'s$/) {
# $tb->diag( "could not find $category message matching $regex" );
# _diag_msgs();
# }
#}
#
#sub does_not_contain_ok {
# my ( $self, $regex, $test_name ) = @_;
#
# local $Test::Builder::Level = $Test::Builder::Level + 1;
#
# $test_name ||= "log does not contain '$regex'";
# else {
# $tb->ok( 1, $test_name );
# }
#}
#
#sub category_does_not_contain_ok {
# my ( $self, $category, $regex, $test_name ) = @_;
#
# local $Test::Builder::Level = $Test::Builder::Level + 1;
#
# $test_name ||= "log for $category contains '$regex'";
#my @test_methods = qw(
# msgs
# clear
# contains_ok
# category_contains_ok
# does_not_contain_ok
# category_does_not_contain_ok
# empty_ok
# contains_only_ok
#);
#
#foreach my $name (@test_methods) {
view all matches for this distribution
view release on metacpan or search on metacpan
module_maker = "ModuleBuildTiny"
static_install = "auto"
[release]
branch = "main"
do_not_upload_to_cpan = 0
view all matches for this distribution
view release on metacpan or search on metacpan
t/boilerplate.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::Warnings;
sub not_in_file_ok {
my ($filename, %regex) = @_;
open( my $fh, '<', $filename )
or die "couldn't open $filename for reading: $!";
my %violated;
t/boilerplate.t view on Meta::CPAN
}
sub module_boilerplate_ok {
my ($module) = @_;
subtest $module => sub {
not_in_file_ok($module =>
'the great new $MODULENAME' => qr/ - The great new /,
'boilerplate description' => qr/Quick summary of what the module/,
'stub function definition' => qr/function[12]/,
'module description' => qr/One-line description of module/,
'description' => qr/A full description of the module/,
t/boilerplate.t view on Meta::CPAN
);
};
}
subtest 'README' => sub {
not_in_file_ok((-f 'README' ? 'README' : 'README.pod') =>
"The README is used..." => qr/The README is used/,
"'version information here'" => qr/to provide version information/,
);
};
subtest 'Changes' => sub {
not_in_file_ok(Changes =>
"placeholder date/time" => qr(Date/time)
);
};
module_boilerplate_ok('lib/App/aptperl.pm');
view all matches for this distribution
view release on metacpan or search on metacpan
t/helper.pm view on Meta::CPAN
return $autotest;
}
sub a_harness { return TAP::Harness->new }
sub a_harness_not_running_the_tests {
my $harness=a_harness();
$harness->expects('runtests');
return $harness;
}
view all matches for this distribution
view release on metacpan or search on metacpan
t/boilerplate.t view on Meta::CPAN
use strict;
use warnings;
use Test::More tests => 3;
sub not_in_file_ok {
my ( $filename, %regex ) = @_;
open( my $fh, '<', $filename )
or die "couldn't open $filename for reading: $!";
my %violated;
t/boilerplate.t view on Meta::CPAN
}
}
sub module_boilerplate_ok {
my ($module) = @_;
not_in_file_ok(
$module => 'the great new $MODULENAME' => qr/ - The great new /,
'boilerplate description' => qr/Quick summary of what the module/,
'stub function definition' => qr/function[12]/,
);
}
TODO: {
local $TODO = "Need to replace the boilerplate text";
not_in_file_ok(
README => "The README is used..." => qr/The README is used/,
"'version information here'" => qr/to provide version information/,
);
not_in_file_ok( Changes => "placeholder date/time" => qr(Date/time) );
module_boilerplate_ok('lib/App/bk.pm');
}
view all matches for this distribution
view release on metacpan or search on metacpan
xt/boilerplate.t view on Meta::CPAN
use warnings;
use Test::More;
plan tests => 3;
sub not_in_file_ok {
my ($filename, %regex) = @_;
open( my $fh, '<', $filename )
or die "couldn't open $filename for reading: $!";
my %violated;
xt/boilerplate.t view on Meta::CPAN
}
}
sub module_boilerplate_ok {
my ($module) = @_;
not_in_file_ok($module =>
'the great new $MODULENAME' => qr/ - The great new /,
'boilerplate description' => qr/Quick summary of what the module/,
'stub function definition' => qr/function[12]/,
);
}
TODO: {
local $TODO = "Need to replace the boilerplate text";
not_in_file_ok(README =>
"The README is used..." => qr/The README is used/,
"'version information here'" => qr/to provide version information/,
);
not_in_file_ok(Changes =>
"placeholder date/time" => qr(Date/time)
);
module_boilerplate_ok('lib/App/bookmarks.pm');
view all matches for this distribution
view release on metacpan or search on metacpan
branch = "main"
hooks = [
"make -C script",
"make -C docs",
]
do_not_upload_to_cpan = 0
view all matches for this distribution
view release on metacpan or search on metacpan
t/boilerplate.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::Warnings;
sub not_in_file_ok {
my ($filename, %regex) = @_;
open( my $fh, '<', $filename )
or die "couldn't open $filename for reading: $!";
my %violated;
t/boilerplate.t view on Meta::CPAN
}
sub module_boilerplate_ok {
my ($module) = @_;
subtest $module => sub {
not_in_file_ok($module =>
'the great new $MODULENAME' => qr/ - The great new /,
'boilerplate description' => qr/Quick summary of what the module/,
'stub function definition' => qr/function[12]/,
'module description' => qr/One-line description of module/,
'description' => qr/A full description of the module/,
t/boilerplate.t view on Meta::CPAN
);
};
}
subtest 'README' => sub {
not_in_file_ok((-f 'README' ? 'README' : 'README.pod') =>
"The README is used..." => qr/The README is used/,
"'version information here'" => qr/to provide version information/,
);
};
subtest 'Changes' => sub {
not_in_file_ok(Changes =>
"placeholder date/time" => qr(Date/time)
);
};
module_boilerplate_ok('lib/App/chkfacl.pm');
view all matches for this distribution
view release on metacpan or search on metacpan
exclude_match = ['^CLAUDE\.md$']
[release]
branch = "main"
do_not_upload_to_cpan = 0
view all matches for this distribution
view release on metacpan or search on metacpan
$opt_csv_delimiter ,
$opt_fullpath ,
$opt_json ,
$opt_md ,
$opt_match_f ,
$opt_not_match_f ,
$opt_match_d ,
$opt_not_match_d ,
$opt_skip_uniqueness ,
$opt_list_file ,
$opt_help ,
$opt_skip_win_hidden ,
$opt_read_binary_files ,
"csv_delimeter|csv-delimiter=s" => \$opt_csv_delimiter ,
"json" => \$opt_json ,
"md" => \$opt_md ,
"fullpath" => \$opt_fullpath ,
"match_f|match-f=s" => \$opt_match_f ,
"not_match_f|not-match-f=s" => \$opt_not_match_f ,
"match_d|match-d=s" => \$opt_match_d ,
"not_match_d|not-match-d=s" => \$opt_not_match_d ,
"list_file|list-file=s" => \$opt_list_file ,
"help" => \$opt_help ,
"skip_win_hidden|skip-win-hidden" => \$opt_skip_win_hidden ,
"read_binary_files|read-binary-files" => \$opt_read_binary_files ,
"sql=s" => \$opt_sql ,
$p_ignored{$file_L} = "--exclude-lang=$Lang_L";
$p_ignored{$file_R} = "--exclude-lang=$Lang_R";
next;
}
my $not_Filters_by_Language_Lang_LR = 0;
#print "file_LR = [$file_L] [$file_R]\n";
#print "Lang_LR = [$Lang_L] [$Lang_R]\n";
if (!(@{$Filters_by_Language{$Lang_L} }) or
!(@{$Filters_by_Language{$Lang_R} })) {
$not_Filters_by_Language_Lang_LR = 1;
}
if ($not_Filters_by_Language_Lang_LR) {
if (($Lang_L eq "(unknown)") or ($Lang_R eq "(unknown)")) {
$p_ignored{$fset_a}{$file_L} = "language unknown (#1)";
$p_ignored{$fset_b}{$file_R} = "language unknown (#1)";
} else {
$p_ignored{$fset_a}{$file_L} = "missing Filters_by_Language{$Lang_L}";
}
if ($opt_match_d) {
push @post_filter, $F if $F =~ m{$opt_match_d};
next;
}
if ($opt_not_match_d) {
if ($opt_fullpath and $F =~ m{$opt_not_match_d}) {
$Ignored{$F} = "--not-match-d=$opt_not_match_d";
next;
} elsif (basename($F) =~ m{$opt_not_match_d}) {
$Ignored{$F} = "--not-match-d (basename) =$opt_not_match_d";
next;
}
}
if ($opt_not_match_f) {
push @post_filter, $F unless basename($F) =~ m{$opt_not_match_f};
next;
}
push @post_filter, $F;
}
print "<- invoke_generator\n" if $opt_v > 2;
next if $F_or_D =~ /^\.{1,2}$/; # skip . and ..
if ($Exclude_Dir{$F_or_D}) {
$Ignored{$File::Find::name} = "--exclude-dir=$Exclude_Dir{$F_or_D}";
} else {
#printf " F_or_D=%-20s File::Find::name=%s\n", $F_or_D, $File::Find::name;
if ($opt_not_match_d) {
if ($opt_fullpath and $File::Find::name =~ m{$opt_not_match_d}) {
$Ignored{$File::Find::name} = "--not-match-d=$opt_not_match_d";
} elsif (!-d $F_or_D and basename($File::Find::name) =~ m{$opt_not_match_d}) {
$Ignored{$File::Find::name} = "--not-match-d (basename) =$opt_not_match_d";
} else {
push @ok, $F_or_D;
}
} else {
push @ok, $F_or_D;
if ($opt_fullpath) {
# look at as much of the path as is known
if ($opt_match_f ) {
return unless $File::Find::name =~ m{$opt_match_f};
}
if ($opt_not_match_f) {
return if $File::Find::name =~ m{$opt_not_match_f};
}
} else {
# only look at the basename
if ($opt_match_f ) { return unless /$opt_match_f/; }
if ($opt_not_match_f) { return if /$opt_not_match_f/; }
}
if ($opt_match_d ) { return unless $Dir =~ m{$opt_match_d} }
my $nBytes = -s $_ ;
if (!$nBytes) {
view all matches for this distribution
view release on metacpan or search on metacpan
bin/colorcoke view on Meta::CPAN
our $opt_random_r = 256;
our $opt_random_g = 256;
our $opt_random_b = 256;
our $opt_single_hex = 0;
our @opt_single_color = ();
#our @opt_do_not_modify = (0,7,15,232);
our @opt_do_not_modify = ();
if(!@ARGV) {
print "$APP $VERSION\n\n";
pod2usage(verbose => 1);
}
bin/colorcoke view on Meta::CPAN
'ansi' => \$opt_ansi_only,
'random' => \$opt_random,
'rr|rand-red:i' => \$opt_random_r,
'rg|rand-green:i' => \$opt_random_g,
'rb|rand-blue:i' => \$opt_random_b,
'no:i{1,}' => \@opt_do_not_modify,
'h|help' => sub { print "$APP $VERSION\n"; pod2usage(verbose => 1) },
'm|man' => sub { pod2usage(verbose => 3) and exit(0); },
'v|version' => sub { print "$APP v$VERSION\n" and exit(0); },
'debug' => \$DEBUG,
);
bin/colorcoke view on Meta::CPAN
my @colors = @_;
my $i = $opt_starting_point;
for my $color(@colors) {
unless($i ~~ @opt_do_not_modify) {
$color = substr($color, 0, 6);
print for values %{ set_xterm_color({ $i => $color }) };
if(($i +1) % 10 == 0) {
print bg($i, fg(0, sprintf(" %03d ", $i))), "\n";
}
view all matches for this distribution
view release on metacpan or search on metacpan
t/boilerplate.t view on Meta::CPAN
use 5.006;
use strict;
use warnings;
use Test::More tests => 3;
sub not_in_file_ok {
my ($filename, %regex) = @_;
open( my $fh, '<', $filename )
or die "couldn't open $filename for reading: $!";
my %violated;
t/boilerplate.t view on Meta::CPAN
}
}
sub module_boilerplate_ok {
my ($module) = @_;
not_in_file_ok($module =>
'the great new $MODULENAME' => qr/ - The great new /,
'boilerplate description' => qr/Quick summary of what the module/,
'stub function definition' => qr/function[12]/,
);
}
TODO: {
local $TODO = "Need to replace the boilerplate text";
not_in_file_ok(README =>
"The README is used..." => qr/The README is used/,
"'version information here'" => qr/to provide version information/,
);
not_in_file_ok(Changes =>
"placeholder date/time" => qr(Date/time)
);
module_boilerplate_ok('lib/App/cpackage.pm');
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Test/More.pm view on Meta::CPAN
{
$tb->_unoverload_str( \$e1, \$e2 );
# Either they're both references or both not.
my $same_ref = !( !ref $e1 xor !ref $e2 );
my $not_ref = ( !ref $e1 and !ref $e2 );
if( defined $e1 xor defined $e2 ) {
$ok = 0;
}
elsif( !defined $e1 and !defined $e2 ) {
inc/Test/More.pm view on Meta::CPAN
$ok = 0;
}
elsif( $same_ref and( $e1 eq $e2 ) ) {
$ok = 1;
}
elsif($not_ref) {
push @Data_Stack, { type => '', vals => [ $e1, $e2 ] };
$ok = 0;
}
else {
if( $Refs_Seen{$e1} ) {
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Test/More.pm view on Meta::CPAN
{
$tb->_unoverload_str( \$e1, \$e2 );
# Either they're both references or both not.
my $same_ref = !( !ref $e1 xor !ref $e2 );
my $not_ref = ( !ref $e1 and !ref $e2 );
if( defined $e1 xor defined $e2 ) {
$ok = 0;
}
elsif( !defined $e1 and !defined $e2 ) {
inc/Test/More.pm view on Meta::CPAN
$ok = 0;
}
elsif( $same_ref and( $e1 eq $e2 ) ) {
$ok = 1;
}
elsif($not_ref) {
push @Data_Stack, { type => '', vals => [ $e1, $e2 ] };
$ok = 0;
}
else {
if( $Refs_Seen{$e1} ) {
view all matches for this distribution