NAME

App::JobLog::Vacation::Period - extension of App::JobLog::Log::Event to handle special properties of vacation periods

VERSION

version 1.042

DESCRIPTION

App::JobLog::Vacation::Period extends App::JobLog::Log::Event to add repeating events and flexible time events and to allow a different serialization convention such that events take a single line in their file.

METHODS

flex

Whether time in a period is "flexible". Flexible time off shrinks or expands to provide enough work hours to complete the day it occurs in.

fixed

Whether time in a period is "fixed". Fixed periods have a definite start and end time. Regular vacation time is just a fixed period of virtual work in the day but at nor particular time and flexible vacation time is just as much time as you need to fill out your work day, again without any particular start or end.

annual

Whether this period repeats annually on a particular range of days in particular months.

annual

Whether this period repeats monthly on a particular range of days.

repeats

Whether this vacation repeats periodically.

description

The description of the vacation period. Lvalue method.

clone

Overrides App::JobLog::Log::Event's clone method to add cloning of special vacation properties.

cmp

Overrides App::JobLog::Log::Event's cmp method so that repeating vacations sort above non-repeating ones.

parse

Class method parsing line in vacation into a vacation object.

to_string

Serializes period into something printable in the vacation file.

conflicts

Determines whether two events overlap in time.

parts

Converts period into list of displayable parts: time, properties, tags, description.

single_day

Whether this period concerns a single day or a longer span of time.

overlap

Adjust start and end times for annual or monthly periods then delegates to superclass method in App::JobLog::Log::Event.

AUTHOR

David F. Houghton <dfhoughton@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by David F. Houghton.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.