--- nfo/perl/libs/Tangram/PerlDump.pm 2002/11/11 03:29:33 1.1 +++ nfo/perl/libs/Tangram/PerlDump.pm 2002/11/11 03:33:39 1.2 @@ -41,19 +41,35 @@ } die ref($self), ": $class\:\:$field: unexpected $refdef" - unless $refdef eq 'HASH'; + unless $refdef eq 'HASH' or $refdef eq 'Tangram::PerlDump'; - $def->{col} ||= $schema->normalize->($field, 'colname'); + $def->{col} ||= $schema->{normalize}->($field, 'colname'); $def->{sql} ||= 'VARCHAR(255)'; $def->{indent} ||= 0; $def->{terse} ||= 1; $def->{purity} ||= 0; $def->{dumper} ||= sub { + + # remember settings + $def->{cache}->{indent} = $Data::Dumper::Indent; + $def->{cache}->{terse} = $Data::Dumper::Terse; + $def->{cache}->{purity} = $Data::Dumper::Purity; + $def->{cache}->{varname} = $Data::Dumper::Varname; + $Data::Dumper::Indent = $def->{indent}; $Data::Dumper::Terse = $def->{terse}; $Data::Dumper::Purity = $def->{purity}; $Data::Dumper::Varname = '_t::v'; - Data::Dumper->$DumpMeth([@_], []); + my $dump = Data::Dumper->$DumpMeth([@_], []); + + # restore settings + $Data::Dumper::Indent = $def->{cache}->{indent}; + $Data::Dumper::Terse = $def->{cache}->{terse}; + $Data::Dumper::Purity = $def->{cache}->{purity}; + $Data::Dumper::Varname = $def->{cache}->{varname}; + + return $dump; + }; }