Storage
- Those JSON files are created directly from our Moose-powered
App::TimeTracker::Data::Task
class. - And most of the work is done by
Moose
andMooseX::Storage
package App::TimeTracker::Data::Task; use Moose; has 'start' => ( isa=>'DateTime', is=>'ro', required=>1, default=>sub { DateTime->now(time_zone=>'local') } ); has 'stop' => ( isa=>'DateTime', is=>'rw', trigger=>\&_calc_duration, ); has 'project' => ( isa=>'Str', is=>'ro', required=>1, );