Statistics-Covid
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/Statistics/Covid.pm view on Meta::CPAN
'save-to-db' => 1,
'debug' => 0,
# internal variables,
'p' => {
'provider-objs' => undef,
'config-hash' => undef,
'datum-io' => undef,
'db-version' => undef,
},
};
bless $self => $class;
if( exists $params->{'debug'} ){ $self->debug($params->{'debug'}) }
my $debug = $self->debug();
if( exists $params->{'save-to-file'} ){ $self->save_to_file($params->{'save-to-file'}) }
if( exists $params->{'save-to-db'} ){ $self->save_to_db($params->{'save-to-db'}) }
my $m;
my $config_hash = undef;
if( exists($params->{'config-file'}) && defined($m=$params->{'config-file'}) ){
$config_hash = Statistics::Covid::Utils::configfile2perl($m);
lib/Statistics/Covid/DataProvider/Base.pm view on Meta::CPAN
my $self = {
# urls is a hash keyed on url, value is optional headers as arrayref
'urls' => undef,
'name' => undef, # this is the name for each provider, e.g. JHU or BBC
'fileparams' => {
# where downloaded data files go
'datafiles-dir' => undef,
},
'debug' => 0,
};
bless $self => $class;
for my $k (keys %$params){
$self->{$k} = $params->{$k} if exists $self->{$k}
}
# we accept config-file or config-hash, see t/example-config.json for an example
if( exists $params->{'config-file'} ){ if( ! $self->config_file($params->{'config-file'}) ){ warn "error, call to config_file() has failed."; return undef } }
elsif( exists $params->{'config-hash'} ){ if( ! $self->config_hash($params->{'config-hash'}) ){ warn "error, call to config_hash() has failed."; return undef } }
# you need to call init() from subclasses after new() and set
# params
lib/Statistics/Covid/IO/Base.pm view on Meta::CPAN
# e.g. Statistics::Covid::Datum
'dual-package-name' => undef,
# some 'our' vars in the dual package which should be already defined in here
# e.g. the tablename, db spec, etc.
'dual-package-vars' => undef,
# a hash with our configuration as read from file or set via the config* subs
# this reflects exactly the configuration json file (e.g. t/example-config.json)
# with 'dbparams' as subhash
'config-hash' => undef,
};
bless $self => $class;
# we accept a debug level parameter>=0
if( exists $params->{'debug'} ){ $self->debug($params->{'debug'}) }
if( ! defined $schema_package_name ){ warn "error, you need to specify a schema package name as a string, like 'Statistics::Covid::Schema'."; return undef }
$self->{'schema-package-name'} = $schema_package_name;
if( ! defined $dual_package_name ){ warn "error, you need to specify a dual-object package name as a string, like 'Statistics::Covid::Datum'."; return undef }
$self->{'dual-package-name'} = $dual_package_name;
if( $self->debug() > 0 ){ warn "creating an IO object for inserting objects of type '$dual_package_name' into DB." }
{
lib/Statistics/Covid/IO/DualBase.pm view on Meta::CPAN
# # ... add more fields
# }, # end schema
# # ADD HERE THE NAME OF THE FIELDS TO create the PK
# 'column-names-for-primary-key' => undef, # [qw/one or more keys from 'schema' to act as PK/]
# 'column-names' => undef, # will be created later by init as an arrayref
# 'num-columns' => -1, # later by init
# }, # end db-specific fields
'debug' => 0,
},
};
bless $self => $class;
my $c = $self->{'c'}; # content fields as they go to DB
my $p = $self->{'p'}; # private fields
my $d = $p->{'db-specific'};
my $s = $d->{'schema'};
# do some sanity checks first
if( !exists($d->{'tablename'}) || !defined($d->{'tablename'}) ){ warn "error, 'tablename' was not specified in the dbschema parameter."; return undef }
if( !exists($d->{'schema'}) || !defined($d->{'schema'}) ){ warn "error, 'schema' was not specified in the dbschema parameter."; return undef }
if( !exists($d->{'column-names-for-primary-key'}) || !defined($d->{'column-names-for-primary-key'}) ){ warn "error, 'column-names-for-primary-key' was not specified in the dbschema parameter."; return undef }
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.373 second using v1.00-cache-2.02-grep-82fe00e-cpan-9f2165ba459b )