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 )