DynGig-Schedule
view release on metacpan or search on metacpan
lib/DynGig/Schedule/Override.pm view on Meta::CPAN
my $override = $config->{$name};
for my $override ( ref $override eq 'ARRAY'
? reverse @$override : $override )
{
next unless $override && ref $override eq 'HASH';
$override->{timezone} ||= $policy->{timezone};
$override->{period} &&= DynGig::Range::Time::Date
->setenv( timezone => $override->{timezone} )
->new( $override->{period} );
if ( $override->{period} )
{
map { $override->{period}->subtract( $_->{period} ) } @override;
last if $override->{period}->empty();
}
for my $action ( OVERRIDE )
{
lib/DynGig/Schedule/Policy.pm view on Meta::CPAN
croak "$label: invalid queue" if ref $queue ne 'ARRAY';
croak "$label: invalid queue" unless my @queue =
map { grep { $_ !~ /:/ } split ',', $_ }
ref $queue ? @$queue : $queue;
map { $policy->{$_} ||= $param{$_} } qw( cycle timezone );
$policy->{queue} = \@queue;
$policy->{period} &&= DynGig::Range::Time::Day
->setenv( cycle => $policy->{cycle} )->new( $policy->{period} );
$policy->{epoch} = DynGig::Range::Time::Date
->setenv( timezone => $policy->{timezone} )
->new( $policy->{epoch} )->abs()->min();
for my $i ( keys %$redirect )
{
if ( $i =~ /^\d+$/ && $i > 1 && $i <= $level
&& $redirect->{$i} =~ /^([^:]+):(\d+)$/ && $config->{$1}
&& $1 ne $label && $2 && $2 <= $param{level}
&& ! $config->{$1}{redirect}{$2 - 1} )
{
my $j = $i + 0;
( run in 0.569 second using v1.01-cache-2.11-cpan-3989ada0592 )