X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class.git;a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSource%2FRowParser.pm;h=065c36caa0b7dbe6a355edb336f6a9adf070465a;hp=d4b75f234ff8670ef8b1bc1ab67dc0581d4bd851;hb=ce556881780369e33743ef86a0cb183e976d3d19;hpb=65ad59ab00bf973e5fd7a375927fd831e6b6e6dc diff --git a/lib/DBIx/Class/ResultSource/RowParser.pm b/lib/DBIx/Class/ResultSource/RowParser.pm index d4b75f2..065c36c 100644 --- a/lib/DBIx/Class/ResultSource/RowParser.pm +++ b/lib/DBIx/Class/ResultSource/RowParser.pm @@ -100,9 +100,13 @@ sub _mk_row_parser { ( 0 .. $#{$args->{inflate_map}} ) }; + my $src; + if (! $args->{collapse} ) { - return assemble_simple_parser({ + $src = assemble_simple_parser({ val_index => $val_index, + hri_style => $args->{hri_style}, + prune_null_branches => $args->{prune_null_branches}, }); } else { @@ -122,11 +126,18 @@ sub _mk_row_parser { } }); - return assemble_collapsing_parser({ + $src = assemble_collapsing_parser({ val_index => $val_index, collapse_map => $collapse_map, + hri_style => $args->{hri_style}, + prune_null_branches => $args->{prune_null_branches}, }); } + + return (! $args->{eval}) + ? $src + : eval "sub { $src }" || die $@ + ; }