summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2008-11-14 19:37:36 +0000
committereinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2008-11-14 19:37:36 +0000
commit5d995fd5de1d4ae1201a3d49b75c7e1f11f95a67 (patch)
tree27fc069d65284c432843cedd1e5bbac483ae763d
parentdb6d65ea85fb62d3399ec073ecb2fb88eb097567 (diff)
Correcting compound array handling in DBObect.pm
git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@2399 4979c152-3d1c-0410-bac9-87ea11338e46
-rw-r--r--LedgerSMB/DBObject.pm2
-rw-r--r--t/42-dbobject.t5
2 files changed, 5 insertions, 2 deletions
diff --git a/LedgerSMB/DBObject.pm b/LedgerSMB/DBObject.pm
index 6e7abfd4..5bd6741d 100644
--- a/LedgerSMB/DBObject.pm
+++ b/LedgerSMB/DBObject.pm
@@ -272,7 +272,7 @@ sub _parse_array {
$close_braces =~ s/{/}/g;
$value =~ /^{($open_braces[^}]*$close_braces)/;
my $parse_next = $1;
- $value =~ s/^{$parse_next/{/;
+ $value =~ s/^{$parse_next,?/{/;
@$next = $self->_parse_array($parse_next);
} else {
diff --git a/t/42-dbobject.t b/t/42-dbobject.t
index 6eb42f2f..65cbbb1c 100644
--- a/t/42-dbobject.t
+++ b/t/42-dbobject.t
@@ -1,5 +1,5 @@
use LedgerSMB::DBObject;
-use Test::More tests => 4;
+use Test::More tests => 5;
# Array parsing tests
my $test = '{test,"test2\"\",",test3,"test4"}';
@@ -9,4 +9,7 @@ for (LedgerSMB::DBObject->_parse_array($test)){
is($_, shift @vals, "pass $pass, array parse test");
}
+my $test2 = '{{1,1,1,1},{1,2,2,2}}';
+my @test_arry2 = LedgerSMB::DBObject->_parse_array($test2);
+is(scalar @test_arry2, 2, 'Compount array with proper element count');