DESCRIPTION
Base class for handling the import of the spreadsheet file
Subclass this.
SYNOPSIS
# Your Importer class package My::Importer;
use Moose;
extends 'Data::Importer';
sub mandatory_columns { return [qw/name description price/]; }
sub validate_row { my ($self, $row, $lineno) = @_; # XXX validation # return $self->add_error("Some error at $lineno") if some condition; # return $self->add_warning("Some warning at $lineno") if some condition; $self->add_row($row); }
sub import_row { my ($self, $row) = @_; $schema->resultset('Table')->create($row) or die; }
# Import the file like this
my $import = My::Importer->new( schema => $schema, file_name => $file_name, ); $import->do_work;
ATTTRIBUTES
schema
Yes, we use DBIx::Class. Send your schema.
dry_run
Set to true if this is only a test
file_name
The name of the spreadsheet
encoding
The encoding of the spreadsheet
import_type
Three formats are supported, csv, xls, ods
mandatory
Required input columns
optional
Required input columns
"PRIVATE" ATTRIBUTES
import_iterator
An iterator for reading the import file
rows
An arrayref w/ the rows to be inserted / updated
warnings
An arrayref w/ all the warnings picked up during processing
These methods are associated with warnings:
all_warnings
Returns all elements
add_warning
Add a warning
join_warnings
Join all warnings
count_warnings
Returns the number of warnings
has_warnings
Returns true if there are warnings
has_no_warnings
Returns true if there isn't any warning
clear_warnings
Clear out all warnings
errors
An arrayref w/ all the errors picked up during processing
These methods are associated with errors:
all_errors
Returns all elements
add_error
Add a error
join_errors
Join all errors
count_errors
Returns the number of errors
has_errors
Returns true if there are errors
has_no_errors
Returns true if there isn't any error
clear_errors
Clear out all errors
timestamp
Time of the import run.
METHODS
mandatory_columns
Builds the mandatory attribute, which gives an arrayref with the required columns.
optional_columns
Builds the optional attribute, which gives an arrayref with the optional columns.
do_work
Import a file
validate
Validates the import file
validate_row
Handle each individual row.
This has to be written in the subclass
import_run
Imports the nodes after validate has been run
import_transaction
Called inside the transaction block.
This is the method to add method modifiers to if processing before or after the row import loop is necessary.
import_row
Handle each individual row.
This has to be written in the subclass
import_failed
Called if the import failed for some reason
import_succeeded
Called after the import has finished succesfully
report
Make a report of what happened