Reintroduce conditional null-branch pruning and add direct-to-HRI option
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / ResultSource / RowParser.pm
index d4b75f2..065c36c 100644 (file)
@@ -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 $@
+  ;
 }