File Coverage

blib/lib/Finance/Bank/Wachovia/Transaction.pm
Criterion Covered Total %
statement 42 42 100.0
branch 3 4 75.0
condition n/a
subroutine 16 17 94.1
pod 0 1 0.0
total 61 64 95.3


line stmt bran cond sub pod time code
1             package Finance::Bank::Wachovia::Transaction;
2              
3 4     4   3234 use Finance::Bank::Wachovia::ErrorHandler;
  4         9  
  4         93  
4 4     4   18 use strict;
  4         8  
  4         61  
5 4     4   16 use warnings;
  4         6  
  4         454  
6              
7             our $VERSION = '0.3';
8             our @ISA = qw/Finance::Bank::Wachovia::ErrorHandler/;
9             my @attrs;
10              
11             BEGIN{
12 4     4   18 @attrs = qw(
13             date
14             action
15             description
16             withdrawal_amount
17             deposit_amount
18             balance
19             seq_no
20             trans_code
21             check_num
22             );
23            
24 4         8 my $x = @__SUPER__::ATTRIBUTES;
25 4         9 for( @attrs ){
26 36     149   979 eval "sub _$_ { $x }";
  149     149   345  
  149     148   354  
  148     154   359  
  154     149   354  
  149     150   347  
  150     149   372  
  149     149   345  
  149     149   354  
  149         366  
27 36         405 $x++;
28             }
29             }
30              
31             sub new {
32 149     149 0 1151 my($class, %attrs) = @_;
33 149         265 my $self = [];
34 149         228 bless $self, $class;
35 149         319 foreach my $att ( keys %attrs ){
36 1332         4013 $self->$att( $attrs{$att} );
37             }
38 149         507 return $self;
39             }
40              
41             sub AUTOLOAD {
42 4     4   24 no strict 'refs';
  4         6  
  4         569  
43 1346     1346   1993 our $AUTOLOAD;
44 1346         1660 my $self = shift;
45 1346         2211 my $attr = lc $AUTOLOAD;
46 1346         3604 $attr =~ s/.*:://;
47 1346 50       12574 die "$attr not a valid attribute"
48             unless grep /$attr/, @attrs;
49             # get if no args passed
50 1346 100       2508 return $self->[ &{"_$attr"} ] unless @_;
  6         129  
51             # set if args passed
52 1340         1683 $self->[ &{"_$attr"} ] = shift;
  1340         24901  
53 1340         2257 return $self;
54             }
55              
56       0     sub DESTROY {}
57              
58             __END__