App-Dochazka-CLI
view release on metacpan or search on metacpan
lib/App/Dochazka/CLI/CommandMap.pm view on Meta::CPAN
use App::Dochazka::CLI::Commands::Interval qw(
interval_date
interval_date_date1
interval_datelist
interval_tsrange
interval_month
interval_num_num1
interval_promptdate
interval_new_date_time_date1_time1
interval_new_time_time1
interval_new_timerange
);
use App::Dochazka::CLI::Commands::Misc qw(
change_prompt_date
noop
);
use App::Dochazka::CLI::Commands::Priv qw(
show_priv_as_at
);
use App::Dochazka::CLI::Commands::Schedule qw(
add_memsched_entry
lib/App/Dochazka/CLI/CommandMap.pm view on Meta::CPAN
"EMPLOYEE_SPEC INTERVAL REPORT _TSRANGE" => \&interval_tsrange,
"INTERVAL FILLUP DATELIST _TERM" => \&interval_datelist,
"EMPLOYEE_SPEC INTERVAL FILLUP DATELIST _TERM" => \&interval_datelist,
"INTERVAL FILLUP DATELIST DRY_RUN _TERM" => \&interval_datelist,
"EMPLOYEE_SPEC INTERVAL FILLUP DATELIST DRY_RUN _TERM" => \&interval_datelist,
# add/insert new intervals
"INTERVAL _TIME _TIME1 _TERM" => \&interval_new_time_time1,
"INTERVAL _TIME _HYPHEN _TIME1 _TERM" => \&interval_new_time_time1,
"INTERVAL _TIMERANGE _TERM" => \&interval_new_timerange,
"INTERVAL _DATE _TIME _TIME1 _TERM" => \&interval_new_time_time1,
"INTERVAL _DATE _TIME _HYPHEN _TIME1 _TERM" => \&interval_new_time_time1,
"INTERVAL _DATE _TIMERANGE _TERM" => \&interval_new_timerange,
"INTERVAL _DATE _TIME _DATE1 _TIME1 _TERM" => \&interval_new_date_time_date1_time1,
"INTERVAL _DATE _TIME _HYPHEN _DATE1 _TIME1 _TERM" => \&interval_new_date_time_date1_time1,
# Lock commands
# Priv commands
"PRIV" => \&show_priv_as_at,
"PRIV _DATE" => \&show_priv_as_at,
"EMPLOYEE_SPEC PRIV" => \&show_priv_as_at,
"EMPLOYEE_SPEC PRIV _DATE" => \&show_priv_as_at,
lib/App/Dochazka/CLI/Commands/Interval.pm view on Meta::CPAN
=cut
our @EXPORT_OK = qw(
interval_date
interval_date_date1
interval_datelist
interval_month
interval_new_date_time_date1_time1
interval_new_time_time1
interval_new_timerange
interval_num_num1
interval_promptdate
interval_tsrange
);
=head1 FUNCTIONS
lib/App/Dochazka/CLI/Commands/Interval.pm view on Meta::CPAN
print Dumper( $th ) if $debug_mode;
my $status = _tsrange_from_dates_and_times( $th->{_DATE}, undef, $th->{_TIME}, $th->{_TIME1} );
return $status unless $status->ok;
return _interval_new( $th->{_TERM}, $status->payload, $th->{_REST} );
}
=head3 interval_new_timerange
INTERVAL _TIMERANGE _TERM
=cut
sub interval_new_timerange {
print "Entering " . __PACKAGE__ . "::interval_new_timerange\n" if $debug_mode;
my ( $ts, $th ) = @_;
# parse test
return parse_test( $ts, $th ) if $ts eq 'PARSE_TEST';
print Dumper( $th ) if $debug_mode;
my ( $rt0, $rt1 ) = $th->{_TIMERANGE} =~ m/\A(\d{1,2}:\d{1,2})-(\d{1,2}:\d{1,2})/;
my $status = _tsrange_from_dates_and_times( $th->{_DATE}, undef, $rt0, $rt1 );
return $status unless $status->ok;
lib/App/Dochazka/CLI/Commands/Schedule.pm view on Meta::CPAN
print Dumper( $memsched ) if $debug_mode;
return _dump_memsched_entries();
}
=head3 replicate_memsched_entry
SCHEDULE ALL _TIMERANGE
Apply timerange to all five days MON-FRI
=cut
sub replicate_memsched_entry {
print "Entering " . __PACKAGE__ . "::add_memsched_entry\n" if $debug_mode;
my ( $ts, $th ) = @_;
# parse test
return parse_test( $ts, $th ) if $ts eq 'PARSE_TEST';
t/parser/parse_test.t view on Meta::CPAN
note( $cmd = "INTERVAL 00:00 5:1 WORK my heart's content" );
$r = parse( $cmd );
do_parse_test( $r->{'nc'}, 'App::Dochazka::CLI::Commands::Interval::interval_new_time_time1' );
note( $cmd = "INTERVAL 00:00 - 5:1 WORK my heart's content" );
$r = parse( $cmd );
do_parse_test( $r->{'nc'}, 'App::Dochazka::CLI::Commands::Interval::interval_new_time_time1' );
note( $cmd = "INTERVAL 00:00-5:1 WORK my heart's content" );
$r = parse( $cmd );
do_parse_test( $r->{'nc'}, 'App::Dochazka::CLI::Commands::Interval::interval_new_timerange' );
note( $cmd = "INTERVAL TODAY 00:00 5:1 WORK my heart's content" );
$r = parse( $cmd );
do_parse_test( $r->{'nc'}, 'App::Dochazka::CLI::Commands::Interval::interval_new_time_time1' );
note( $cmd = "INTERVAL tomROWOR 00:00 5:1 WORK my heart's content" );
$r = parse( $cmd );
do_parse_test( $r->{'nc'}, 'App::Dochazka::CLI::Commands::Interval::interval_new_time_time1' );
note( $cmd = "INTERVAL yesterYEAR 00:00 5:1 WORK my heart's content" );
t/parser/parse_test.t view on Meta::CPAN
],
'th' => {
'_DATE' => '1956-07-2',
'_TIMERANGE' => '00:00-5:1',
'INTERVAL' => 'INTERVAL',
'_REST' => 'my heart\'s content',
'_TERM' => 'WORK'
},
'nc' => 'INTERVAL _DATE _TIMERANGE _TERM'
} );
do_parse_test( $r->{'nc'}, 'App::Dochazka::CLI::Commands::Interval::interval_new_timerange' );
note( $cmd = "INTERVAL +3 00:00-5:1 WORK my heart's content" );
$r = parse( $cmd );
do_parse_test( $r->{'nc'}, 'App::Dochazka::CLI::Commands::Interval::interval_new_timerange' );
note( $cmd = "INTERVAL YESTERDAY 04:35 TOMORROW 14:00 FOO_BAR_PUSS Working my butt off" );
$r = parse( $cmd );
do_parse_test( $r->{'nc'}, 'App::Dochazka::CLI::Commands::Interval::interval_new_date_time_date1_time1' );
note( $cmd = "INTERVAL 1944-01-26 04:35 1944-01-26 14:00 FOO_BAR_PUSS Working my butt off" );
$r = parse( $cmd );
do_parse_test( $r->{'nc'}, 'App::Dochazka::CLI::Commands::Interval::interval_new_date_time_date1_time1' );
note( $cmd = "INTERVAL 1944-01-26 04:35 14:0 WORK Different test string" );
t/parser/parse_test.t view on Meta::CPAN
note( $cmd = "INTERVAL 1944-01-26 04:35 - 14:00 FOO_BAR_PUSS Working my butt off" );
$r = parse( $cmd );
do_parse_test( $r->{'nc'}, 'App::Dochazka::CLI::Commands::Interval::interval_new_time_time1' );
note( $cmd = "INTERVAL -1 04:35 - 14:00 FOO_BAR_PUSS Working my butt off" );
$r = parse( $cmd );
do_parse_test( $r->{'nc'}, 'App::Dochazka::CLI::Commands::Interval::interval_new_time_time1' );
note( $cmd = "INTERVAL 4:35-14:00 FOO_BAR_PUSS Working my butt off" );
$r = parse( $cmd );
do_parse_test( $r->{'nc'}, 'App::Dochazka::CLI::Commands::Interval::interval_new_timerange' );
#================================
# Priv commands
#================================
$cmd = "PRIV";
$r = parse( $cmd );
do_parse_test( $r->{'nc'}, 'App::Dochazka::CLI::Commands::Priv::show_priv_as_at' );
( run in 2.751 seconds using v1.01-cache-2.11-cpan-49f99fa48dc )