NAME
ETLp::File::Config - Parse the file confgiuration defintions
SYNOPSIS
use ETLp::File::Config;
my $file_conf = ETLp::File::Config->new(
directory => "$Bin/../conf",
definition => 'file_def.cfg',
);
# Get the fields from the config file:
my @fields = @{$file_conf->fields};
ETLp::File::Config parses data file definitions. Defintions are specified in files and consist of the following components separated by whitespace:
* field name - the name of the field
* nullable - whether the field is allows nulls (Y or N)
* validation rules:
o A regex pattern, specified as qr/<regex>/
o Varchar(n). String up to n characters.
o Integer. A positive or negative integer.
o Real. A real number.
o Date(<POSIX PATTERN>). A valid date with the format specified
as a POSIX pattern
o range(n, m). A numeric range from n to m. If n is not specified
there is no lower limit. If m is not specified, there is no
upper limit
Multiple validation rules can be specified per field - simply separate with a semi-colon.
Example Configuration entries
custname N varchar(20)
cost Y integer
phone Y qr/^\d{3}-\d{4}$/
city N qr/^(Auckland|Wellington)$/
rec_date N date(%Y-%n-%d %H:%M%S)
period N range(1,50); integer
Individual rules can be enclosed in double-quotes, which will be required if any indvidual rule contains a semi-colon:
contrived_field N "qr/\d;\s{3}/"
Comments can be specified with a hash
# This is a line comment
custname N varchar(20) # And this is a field comment
METHODS
new
Create a Config object.
Parameters
Hash or hashref consisting of
* directory: Optional. The directory where the
file_defintion file can be found.
* definition: Required. A file that contains a defintion
of a file.
Returns
* a ETLp::File::Validate object
LICENSE AND COPYRIGHT
Copyright 2010 Redbone Systems Ltd
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
The terms are in the LICENSE file that accompanies this application