diff options
Diffstat (limited to 'lib/App/Beam/History/Record.pm')
-rw-r--r-- | lib/App/Beam/History/Record.pm | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/lib/App/Beam/History/Record.pm b/lib/App/Beam/History/Record.pm index 2754e04..ce940fe 100644 --- a/lib/App/Beam/History/Record.pm +++ b/lib/App/Beam/History/Record.pm @@ -3,6 +3,7 @@ package App::Beam::History::Record; use strict; use Carp; use App::Beam::History::Entry qw(:state); +use App::Beam::History::Item; our @ISA = qw(App::Beam::History::Entry); @@ -109,37 +110,38 @@ sub end_time { return $self->SUPER::end_time; } -sub begin_entry { +sub begin_item { my ($self, $name) = @_; - croak "can't add entry to a finished record" + croak "can't add item to a finished record" unless $self->{state} == STATE_PENDING; - my $entry = new App::Beam::History::Entry; - $self->{detail}{$name} = $entry; - if ($entry->start_time > $self->{end_time}) { - $self->{end_time} = $entry->start_time; + my $item = new App::Beam::History::Item; + $self->{detail}{$name} = $item; + if ($item->start_time > $self->{end_time}) { + $self->{end_time} = $item->start_time; } + return $item; } -sub entries { +sub items { my ($self) = @_; return %{$self->{detail}}; } -sub entry_names { +sub item_names { my ($self) = @_; return keys %{$self->{detail}}; } -sub finish_entry { +sub finish_item { my ($self, $name, $state) = @_; croak "can't modify item in a finished record" unless $self->{state} == STATE_PENDING; - croak "no such entry" + croak "no such item" unless exists $self->{detail}{$name}; - my $entry = $self->{detail}{$name}; - $entry->state($state); - if ($entry->end_time > $self->{end_time}) { - $self->{end_time} = $entry->end_time; + my $item = $self->{detail}{$name}; + $item->state($state); + if ($item->end_time > $self->{end_time}) { + $self->{end_time} = $item->end_time; } } |