simplify history recording task
[gitmo/moose-presentations.git] / moose-class / exercises / answers / 06-advanced-attributes / BankAccount.pm
index 5c0035b..90c78e2 100644 (file)
@@ -7,7 +7,7 @@ has balance => (
     is      => 'rw',
     isa     => 'Int',
     default => 100,
-    trigger => sub { $_[0]->_record_difference( $_[1] ) },
+    trigger => sub { shift->_record_balance(@_) },
 );
 
 has owner => (
@@ -22,12 +22,6 @@ has history => (
     default => sub { [] },
 );
 
-sub BUILD {
-    my $self = shift;
-
-    $self->_record_difference( $self->balance );
-}
-
 sub deposit {
     my $self   = shift;
     my $amount = shift;
@@ -45,13 +39,12 @@ sub withdraw {
     $self->balance( $self->balance - $amount );
 }
 
-sub _record_difference {
-    my $self      = shift;
-    my $new_value = shift;
-
-    my $old_value = sum @{ $self->history };
+sub _record_balance {
+    my $self = shift;
+    shift;
+    my $old_value = shift;
 
-    push @{ $self->history }, $new_value - ( $old_value || 0 );
+    push @{ $self->history }, $old_value;
 }
 
 no Moose;