[interchange-cvs] interchange - heins modified lib/Vend/Data.pm

interchange-cvs at icdevgroup.org interchange-cvs at icdevgroup.org
Fri Jun 4 00:05:49 EDT 2004


User:      heins
Date:      2004-06-04 04:05:36 GMT
Modified:  lib/Vend Data.pm
Log:
* Improve self-contained database definitions by allowing field names
  to come directly from the CREATE_EMPTY_TXT parameter:

  	Database foo CREATE_EMPTY_TXT   code  description bar baz

  This prevents problems with later SQL "alter table ...." statements not
  being acknowleged by IC because the NAME parameter does not match the
  NAME array returned by DBI.

Revision  Changes    Path
2.40      +11 -4     interchange/lib/Vend/Data.pm


rev 2.40, prev_rev 2.39
Index: Data.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Data.pm,v
retrieving revision 2.39
retrieving revision 2.40
diff -u -r2.39 -r2.40
--- Data.pm	3 Jun 2004 06:31:18 -0000	2.39
+++ Data.pm	4 Jun 2004 04:05:35 -0000	2.40
@@ -1,6 +1,6 @@
 # Vend::Data - Interchange databases
 #
-# $Id: Data.pm,v 2.39 2004/06/03 06:31:18 mheins Exp $
+# $Id: Data.pm,v 2.40 2004/06/04 04:05:35 mheins Exp $
 # 
 # Copyright (C) 2002-2003 Interchange Development Group
 # Copyright (C) 1996-2002 Red Hat, Inc.
@@ -774,13 +774,20 @@
 	my ($obj, $database_txt, $delimiter, $record_delim) = @_;
 	return if -f $database_txt;
 	return unless $obj->{CREATE_EMPTY_TXT};
-	if(! ref($obj->{NAME}) eq 'ARRAY') {
-		logError("Cannot create text file with no database NAME parameter");
+	my $ary;
+	if($obj->{CREATE_EMPTY_TXT} =~ /[\s,]\w/) {
+		$ary = [ grep /\S/, split /[\s,]+/, $obj->{CREATE_EMPTY_TXT} ];
+	}
+	else {
+		$ary = $obj->{NAME};
+	}
+	unless (ref($ary) eq 'ARRAY') {
+		logError("Cannot create text file with no database NAME parameter and no field names in CREATE_EMPTY_TXT");
 	}
 	else {
 		$delimiter ||= "\t";
 		$record_delim ||= "\n";
-		my $line = join $obj->{DELIMITER}, @{$obj->{NAME}};
+		my $line = join $obj->{DELIMITER}, @$ary;
 		$line .= $record_delim;
 		Vend::Util::writefile($database_txt, $line);
 	}








More information about the interchange-cvs mailing list