dump undef or NULL values as \N
[MojoFacets.git] / lib / MojoFacets / Data.pm
index 69d4349..047886d 100644 (file)
@@ -326,7 +326,9 @@ sub _export_path {
        }
        my $dir = $self->app->home->rel_dir('public') . "/export/$path";
        mkpath $dir unless -e $dir;
-       $dir . '/' . unac_string( join('.', @_) );
+       my $name = unac_string( join('.', @_) );
+       $name =~ s/\W+/_/g;
+       $dir . '/' . $name;
 }
 
 sub columns {
@@ -746,11 +748,16 @@ sub items {
                foreach my $f ( 0 .. $#$filtered ) {
                        print $fh join("\t", map {
                                my $i = $data->{items}->[ $filtered->[$f] ];
-                               if ( ref $i->{$_} eq 'ARRAY' ) {
-                                       join(',', @{ $i->{$_} });
+                               my $v = '\N';
+                               if ( ! defined $i->{$_} ) {
+                                       # nop
+                               } elsif ( ref $i->{$_} eq 'ARRAY' ) {
+                                       $v =join(',', @{ $i->{$_} });
+                                       $v = '\N' if length($v) == 0;
                                } else {
-                                       dump $i->{$_};
+                                       $v = dump $i->{$_};
                                }
+                               $v;
                        } @columns),"\n";
                }
                close($fh);