[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