Returns an array of transactions instead of a reference to it
[cascardo/Finance-Bank-BR-Santander-Spreadsheet.git] / lib / Finance / Bank / BR / Santander / Spreadsheet.pm
index e4bddb6..1b3e634 100644 (file)
@@ -14,7 +14,9 @@ sub new {
     my $self = {};
     bless $self, $class;
     $self->_init;
-    $self->load(@_);
+    if ($self->load(@_)) {
+        return undef;
+    }
     return $self;
 }
 
@@ -52,10 +54,11 @@ sub load {
     if (defined($filename)) {
         my $xls = Spreadsheet::ParseExcel::Simple->read($filename);
         if (!defined($xls)) {
-            return;
+            return 1;
         }
         $self->_parse($xls);
     }
+    return 0;
 }
 
 sub balance {
@@ -65,7 +68,7 @@ sub balance {
 
 sub statement {
     my $self = shift;
-    return $self->{statement};
+    return @{$self->{statement}};
 }
 
 1;
@@ -82,8 +85,8 @@ Finance::Bank::BR::Santander::Spreadsheet - Parse statement exported from Brazil
 
     my $spreadsheet = Finance::Bank::BR::Santander::Spreadsheet->new($filename);
     my $balance = $spreadsheet->balance;
-    my $data = $spreadsheet->statement;
-    foreach my $transaction (@{$data}) {
+    my @data = $spreadsheet->statement;
+    foreach my $transaction (@data) {
         say "$transaction->{date}, $transaction->{name}, $transaction->{extra}, $transaction->{value}, $transaction->{balance}";
     }
 
@@ -105,7 +108,7 @@ The C<balance()> method returns the last balance found in the sheet.
 
 =head2 statement()
 
-The C<statement()> method returns a reference to an array of transactions, described as below.
+The C<statement()> method returns an array of transactions, described as below.
 
 =head1 Transaction