CsvImport: worker kann Csv-Helper auch mit scalar-ref als Datei aufrufen.
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Fri, 11 Aug 2017 12:14:02 +0000 (14:14 +0200)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Fri, 11 Aug 2017 12:14:02 +0000 (14:14 +0200)
Der Csv-Helper kann für die Datendatei auch eine Referenz auf Daten erhalten.
Die Basis-Klasse der Worker des CsvImports unterstützt das jetzt auch. Damit
kann dann z.B. in den Tests $worker->run auch verwendet werden, wenn der Worker
in file eben eine Referenz auf die Csv-Daten enthält.

SL/Controller/CsvImport/Base.pm
SL/Controller/CsvImport/BaseMulti.pm

index 43906bf..85eb6fa 100644 (file)
@@ -34,7 +34,7 @@ sub run {
   $self->controller->track_progress(phase => 'parsing csv', progress => 0);
 
   my $profile = $self->profile;
-  $self->csv(SL::Helper::Csv->new(file                   => $self->file->file_name,
+  $self->csv(SL::Helper::Csv->new(file                   => ('SCALAR' eq ref $self->file)? $self->file: $self->file->file_name,
                                   encoding               => $self->controller->profile->get('charset'),
                                   profile                => [{ profile => $profile, class => $self->class, mapping => $self->controller->mappings_for_profile }],
                                   ignore_unknown_columns => 1,
index d4bb745..b975394 100644 (file)
@@ -22,7 +22,7 @@ sub run {
 
   my $profile = $self->profile;
 
-  $self->csv(SL::Helper::Csv->new(file                    => $self->file->file_name,
+  $self->csv(SL::Helper::Csv->new(file                   => ('SCALAR' eq ref $self->file)? $self->file: $self->file->file_name,
                                   encoding                => $self->controller->profile->get('charset'),
                                   profile                 => $profile,
                                   ignore_unknown_columns  => 1,