[interchange-cvs] interchange - heins modified lib/Vend/Config.pm
interchange-cvs at icdevgroup.org
interchange-cvs at icdevgroup.org
Sun Dec 2 08:40:32 EST 2007
User: heins
Date: 2007-12-02 13:40:32 GMT
Modified: lib/Vend Config.pm
Log:
* Add ability to define multiple columns in the same COLUMN_DEF line:
Database products COLUMN_DEF "price,sale_price=DECIMAL(12,2) NOT NULL"
Database products COLUMN_DEF "category,prod_group=varchar(64) NOT NULL DEFAULT ''"
Database products COLUMN_DEF "size,color=varchar(96)"
Database products COLUMN_DEF "inactive,gift_cert=varchar(3) DEFAULT ''"
* Start warning when hash-type database parameters are redefined.
Revision Changes Path
2.226 +72 -7 interchange/lib/Vend/Config.pm
rev 2.226, prev_rev 2.225
Index: Config.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Config.pm,v
retrieving revision 2.225
retrieving revision 2.226
diff -u -r2.225 -r2.226
--- Config.pm 14 Nov 2007 04:50:19 -0000 2.225
+++ Config.pm 2 Dec 2007 13:40:32 -0000 2.226
@@ -1,6 +1,6 @@
# Vend::Config - Configure Interchange
#
-# $Id: Config.pm,v 2.225 2007/11/14 04:50:19 pajamian Exp $
+# $Id: Config.pm,v 2.226 2007/12/02 13:40:32 mheins Exp $
#
# Copyright (C) 2002-2007 Interchange Development Group
# Copyright (C) 1996-2002 Red Hat, Inc.
@@ -54,7 +54,7 @@
use Vend::Data;
use Vend::Cron;
-$VERSION = substr(q$Revision: 2.225 $, 10);
+$VERSION = substr(q$Revision: 2.226 $, 10);
my %CDname;
my %CPname;
@@ -4130,10 +4130,13 @@
return ++$num;
}
+my %Explode_ref = ( qw!
+ COLUMN_DEF COLUMN_DEF
+!);
+
my %Hash_ref = ( qw!
FILTER_FROM FILTER_FROM
FILTER_TO FILTER_TO
- COLUMN_DEF COLUMN_DEF
LENGTH_EXCEPTION LENGTH_EXCEPTION
DEFAULT DEFAULT
DEFAULT_SESSION DEFAULT_SESSION
@@ -4225,13 +4228,44 @@
my($p, $val) = split /\s+/, $remain, 2;
$p = uc $p;
- if(defined $Hash_ref{$p}) {
+ if(defined $Explode_ref{$p}) {
+ my($ak, $v);
+ my(@v) = Vend::Util::quoted_comma_string($val);
+ @v = grep defined $_, @v;
+ $d->{$p} = {} unless defined $d->{$p};
+ for(@v) {
+ my ($sk,$v) = split /\s*=\s*/, $_;
+ my (@k) = grep /\w/, split /\s*,\s*/, $sk;
+ for my $k (@k) {
+ if($d->{$p}->{$k}) {
+ config_warn(
+ qq{Database %s explode parameter %s redefined to "%s", was "%s".},
+ $d->{name},
+ $p,
+ $v,
+ $d->{$p}->{$k},
+ );
+ }
+ $d->{$p}->{$k} = $v;
+ }
+ }
+ }
+ elsif(defined $Hash_ref{$p}) {
my($k, $v);
my(@v) = Vend::Util::quoted_comma_string($val);
@v = grep defined $_, @v;
$d->{$p} = {} unless defined $d->{$p};
for(@v) {
($k,$v) = split /\s*=\s*/, $_;
+ if($d->{$p}->{$k}) {
+ config_warn(
+ qq{Database %s hash parameter %s redefined to "%s", was "%s".},
+ $d->{name},
+ $p,
+ $v,
+ $d->{$p}->{$k},
+ );
+ }
$d->{$p}->{$k} = $v;
}
}
@@ -4244,7 +4278,7 @@
defined $d->{$p}
and ! defined $C->{DatabaseDefault}{$p}
and config_warn(
- "ConfigDatabase %s scalar parameter %s redefined to '%s', was %s.",
+ qq{Database %s scalar parameter %s redefined to "%s", was "%s".},
$d->{name},
$p,
$val,
@@ -4382,13 +4416,44 @@
$p = uc $p;
#::logDebug("parse_database: parameter $p = $val");
- if(defined $Hash_ref{$p}) {
+ if(defined $Explode_ref{$p}) {
+ my($ak, $v);
+ my(@v) = Vend::Util::quoted_comma_string($val);
+ @v = grep defined $_, @v;
+ $d->{$p} = {} unless defined $d->{$p};
+ for(@v) {
+ my ($sk,$v) = split /\s*=\s*/, $_;
+ my (@k) = grep /\w/, split /\s*,\s*/, $sk;
+ for my $k (@k) {
+ if($d->{$p}->{$k}) {
+ config_warn(
+ qq{Database %s explode parameter %s redefined to "%s", was "%s".},
+ $d->{name},
+ $p,
+ $v,
+ $d->{$p}->{$k},
+ );
+ }
+ $d->{$p}->{$k} = $v;
+ }
+ }
+ }
+ elsif(defined $Hash_ref{$p}) {
my($k, $v);
my(@v) = Vend::Util::quoted_comma_string($val);
@v = grep defined $_, @v;
$d->{$p} = {} unless defined $d->{$p};
for(@v) {
($k,$v) = split /\s*=\s*/, $_;
+ if($d->{$p}->{$k}) {
+ config_warn(
+ qq{Database %s hash parameter %s redefined to "%s", was "%s".},
+ $d->{name},
+ $p,
+ $v,
+ $d->{$p}->{$k},
+ );
+ }
$d->{$p}->{$k} = $v;
}
}
@@ -4433,7 +4498,7 @@
and ! defined $C->{DatabaseDefault}{$p}
and
config_warn(
- "Database %s scalar parameter %s redefined to '%s', was %s.",
+ qq{Database %s scalar parameter %s redefined to "%s", was "%s".},
$d->{name},
$p,
$val,
More information about the interchange-cvs
mailing list