NAME
App::TimeTracker::Task - interface to one task
SYNOPSIS
my $task = App::TimeTracker::Task->new({
start => '1232010055',
project => 'TimeTracker',
tags => \@tags,
basedir =>'/path/to/basedir',
});
$task->stop_it;
$task->write( );
my $task = App::TimeTracker::Task->read('/path/to/file');
say $task->start; # epoche
say $task->is_active; # 1 or 0
say $task->duration; # in seconds
METHODS
new
my $task = App::TimeTracker::App->new( $data );
Initiate a new task object.
stop_it
$self->stop_it;
$self->stop_it( $dt );
Stop this task, either at the specified $epoche
, or now()
. Throws an exception if the task is already stopped.
Returns $self
for method chaining.
read
my $task = App::TimeTracker::Task->read( $path );
Reads the specified file, parses it, generates a new object and returns the object.
write
$task->write;
$task->write( $basedir );
Serialises the data and writes it to disk.
If you got the object via read, you don't need to specifiy the $basedir
. If this is the first time you want to write
the object, the $basedir
is neccesary.
set_current
$task->set_current;
Makes $task the current task
get_current
my $current = App::TimeTracker::Task->get_current( $basedir );
Loads the current task (i.e. the one you're working on ATM). Returns undef if there is no current task.
remove_current
$self->remove_current;
Removes the current task file (because it's no longer current, but done).
remove_suspended
remove the suspendend file. NOT IMPLEMENTED YET
stop_current
Stops the current task
get_printable_interval
my $string = $self->get_printable_interval([$start, stop]);
Returns a string like "worked 30 minutes, 23 seconds on Task (foo bar)"
beautify_duration
my $nice_message = $self->beautify_duration($duration);
Turns an DateTime::Duration object into a nicer representation ("4 minutes, 31 seconds")
beautify_seconds
my $nice_message = $self->beautify_seconds($seconds);
Turns an amount of seconds into a nicer representation ("4 minutes, 31 seconds")
nice_tags
say $task->nice_tags;
Pretty-print the tag list
is_active
Returns true if the task is active, undef if it isn't
AUTHOR
Thomas Klausner, <domm at cpan.org>
COPYRIGHT & LICENSE
Copyright 2008, 2009 Thomas Klausner, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.