[interchange-cvs] interchange - racke modified 4 files

interchange-cvs at icdevgroup.org interchange-cvs at icdevgroup.org
Tue Nov 8 04:50:24 EST 2005


User:      racke
Date:      2005-11-08 09:50:24 GMT
Modified:  .        MANIFEST
Modified:  lib/Vend Order.pm
Added:     code/OrderCheck filter.oc unique.oc
Log:
split out filter and unique order checks

Revision  Changes    Path
2.182     +2 -0      interchange/MANIFEST


rev 2.182, prev_rev 2.181
Index: MANIFEST
===================================================================
RCS file: /var/cvs/interchange/MANIFEST,v
retrieving revision 2.181
retrieving revision 2.182
diff -u -r2.181 -r2.182
--- MANIFEST	2 Nov 2005 15:26:40 -0000	2.181
+++ MANIFEST	8 Nov 2005 09:50:23 -0000	2.182
@@ -85,11 +85,13 @@
 code/JavaScriptCheck/required.jsc
 code/OrderCheck/email_only.oc
 code/OrderCheck/exists.oc
+code/OrderCheck/filter.oc
 code/OrderCheck/future.oc
 code/OrderCheck/length.oc
 code/OrderCheck/natural.oc
 code/OrderCheck/regex.oc
 code/OrderCheck/relative_filename.oc
+code/OrderCheck/unique.oc
 code/SystemTag/accessories.coretag
 code/SystemTag/accounting.coretag
 code/SystemTag/area.coretag



1.1                  interchange/code/OrderCheck/filter.oc


rev 1.1, prev_rev 1.0
Index: filter.oc
===================================================================
# Copyright 2005 Interchange Development Group (http://www.icdevgroup.org/)
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: filter.oc,v 1.1 2005/11/08 09:50:23 racke Exp $

CodeDef filter OrderCheck 1
CodeDef filter Routine <<EOR
sub {		
	my ($ref, $name, $value, $code) = @_;
	my $message;
	my $filter;

	$code =~ s/\\/\\\\/g;
	if($code =~ /(["']).+?\1$/) {
		my @code = Text::ParseWords::shellwords($code);
		$message = pop(@code);
		$filter = join " ", @code;
	}
	else {
		($filter, $message) = split /\s+/, $code, 2;
	}

	my $test = Vend::Interpolate::filter_value($filter, $value, $name);
	if($test ne $value) {
		$message ||= errmsg("%s caught by filter %s", $name, $filter);
		return ( 0, $name, $message);
	}
	return (1, $name, '');
}
EOR


1.1                  interchange/code/OrderCheck/unique.oc


rev 1.1, prev_rev 1.0
Index: unique.oc
===================================================================
# Copyright 2005 Interchange Development Group (http://www.icdevgroup.org/)
# Licensed under the GNU GPL v2. See file LICENSE for details.
# $Id: unique.oc,v 1.1 2005/11/08 09:50:24 racke Exp $

CodeDef unique OrderCheck 1
CodeDef unique Routine <<EOR
sub {
	my ($ref, $name, $value, $code) = @_;

	$code =~ s/(\w+)(:+(\w+))?\s*//;
	my $tab = $1
		or return (0, $name, errmsg("no table specified"));
	my $col = $3;
	my $msg = $code;

	my $db = database_exists_ref($tab)
		or do {
			$msg = errmsg(
						  "Table %s doesn't exist",
						  $tab,
						 );
			return(0, $name, $msg);
		};
	my $used;
	if(! $col) {
		$used = $db->record_exists($value);
	}
	else {
		#::logDebug("Doing foreign key check, tab=$tab col=$col value=$value");
		$used = $db->foreign($value, $col);
	}

	#::logDebug("Checking unique, tab=$tab col=$col, used=$used");
	if(! $used) {
		return (1, $name, '');
	}
	else {
		$msg = errmsg(
					  "Key %s already exists in %s, try again.",
					  $value,
					  $tab,
					 ) unless $msg;
		return(0, $name, $msg);
	}
}
EOR



2.83      +2 -64     interchange/lib/Vend/Order.pm


rev 2.83, prev_rev 2.82
Index: Order.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Order.pm,v
retrieving revision 2.82
retrieving revision 2.83
diff -u -r2.82 -r2.83
--- Order.pm	7 Nov 2005 21:53:55 -0000	2.82
+++ Order.pm	8 Nov 2005 09:50:24 -0000	2.83
@@ -1,6 +1,6 @@
 # Vend::Order - Interchange order routing routines
 #
-# $Id: Order.pm,v 2.82 2005/11/07 21:53:55 jon Exp $
+# $Id: Order.pm,v 2.83 2005/11/08 09:50:24 racke Exp $
 #
 # Copyright (C) 2002-2003 Interchange Development Group
 # Copyright (C) 1996-2002 Red Hat, Inc.
@@ -29,7 +29,7 @@
 package Vend::Order;
 require Exporter;
 
-$VERSION = substr(q$Revision: 2.82 $, 10);
+$VERSION = substr(q$Revision: 2.83 $, 10);
 
 @ISA = qw(Exporter);
 
@@ -127,68 +127,6 @@
 								$params =~ s/\s+//g;
 								return $params;
 							},
-	'filter'			=> sub {		
-							my($name, $value, $code) = @_;
-							my $message;
-							my $filter;
-
-							$code =~ s/\\/\\\\/g;
-							if($code =~ /(["']).+?\1$/) {
-								my @code = Text::ParseWords::shellwords($code);
-								$message = pop(@code);
-								$filter = join " ", @code;
-							}
-							else {
-								($filter, $message) = split /\s+/, $code, 2;
-							}
-
-							my $test = Vend::Interpolate::filter_value($filter, $value, $name);
-							if($test ne $value) {
-								$message ||= errmsg("%s caught by filter %s", $name, $filter);
-								return ( 0, $name, $message);
-							}
-							return (1, $name, '');
-						},
-	'unique'			=> sub {
-							my($name, $value, $code) = @_;
-
-							$code =~ s/(\w+)(:+(\w+))?\s*//;
-							my $tab = $1
-								or return (0, $name, errmsg("no table specified"));
-							my $col = $3;
-							my $msg = $code;
-
-							my $db = database_exists_ref($tab)
-								or do {
-									$msg = errmsg(
-										"Table %s doesn't exist",
-										$tab,
-									);
-									return(0, $name, $msg);
-								};
-							my $used;
-							if(! $col) {
-								$used = $db->record_exists($value);
-							}
-							else {
-#::logDebug("Doing foreign key check, tab=$tab col=$col value=$value");
-								$used = $db->foreign($value, $col);
-							}
-
-#::logDebug("Checking unique, tab=$tab col=$col, used=$used");
-							if(! $used) {
-								return (1, $name, '');
-							}
-							else {
-								$msg = errmsg(
-										"Key %s already exists in %s, try again.",
-										$value,
-										$tab,
-									) unless $msg;
-								return(0, $name, $msg);
-							}
-
-						},
 	'&set'			=>	sub {		
 								my($ref,$params) = @_;
 								my ($var, $value) = split /\s+/, $params, 2;








More information about the interchange-cvs mailing list