From 03d32acd0168b798daf014d3a39b7ef564cfae51 Mon Sep 17 00:00:00 2001 From: Nigel McNie Date: Mon, 26 May 2008 20:55:40 +1200 Subject: [PATCH] Add a method to load timesheet information in a simpler format than yaml. The format looks like: date WR time description WR time description ... date WR time description WR time description ... --- lib/WRMS.pm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/lib/WRMS.pm b/lib/WRMS.pm index c360b2e..077755b 100644 --- a/lib/WRMS.pm +++ b/lib/WRMS.pm @@ -226,6 +226,50 @@ sub parse_page { croak q{Couldn't parse '} . $self->{mech}->uri() . q{'}; } +sub load_timesheet_file { + my ($file) = @_; + + my ($DATE, $WR, $TIME, $DESC); + my @result; + + open(FH, "<$file"); + while (my $line = ) { + # Strip comments + next if $line =~ m/^ \s* \#/xms; + + if ( + $line =~ m{^ ( \d+ / \d+ / \d\d (\d\d)? ) }xms or # dd/mm/yy or dd/mm/yyyy + $line =~ m{^ ( \d{4} / \d+ / \d+ ) }xms # yyyy/mm/dd + ) { + $DATE = $1; + next; + } + + if ( $line =~ m{\A + ( \d+ | [a-zA-Z0-9_-]+ ) \s+ # Work request number OR alias + ( \d+ | \d* \. \d+ ) \s+ # Time in integer or decibal + ( .* ) \z}xms ) { + $WR = $1; + $TIME = $2; + $DESC = $3; + chomp $DESC; + + my $row = { + 'wr' => $WR, + 'date' => $DATE, + 'comment' => $DESC, + 'time' => $TIME, + }; + + push @result, $row; + } + + } + close FH; + + return @result; +} + sub last_error { my ($self) = @_; -- 2.39.5