[interchange] Rename numeric ordercheck to numeric_strict, and add laxer numeric check
Jon Jensen
interchange-cvs at icdevgroup.org
Wed Apr 7 20:40:48 UTC 2010
commit 5e03d9ebceeecd1726fd8db77c580cfc660f569c
Author: Jon Jensen <jon at endpoint.com>
Date: Wed Apr 7 14:38:39 2010 -0600
Rename numeric ordercheck to numeric_strict, and add laxer numeric check
code/OrderCheck/numeric.oc | 4 +++-
code/OrderCheck/numeric_strict.oc | 21 +++++++++++++++++++++
2 files changed, 24 insertions(+), 1 deletions(-)
---
diff --git a/code/OrderCheck/numeric.oc b/code/OrderCheck/numeric.oc
index 4267c4b..c44b1c4 100644
--- a/code/OrderCheck/numeric.oc
+++ b/code/OrderCheck/numeric.oc
@@ -8,10 +8,12 @@
CodeDef numeric OrderCheck
CodeDef numeric Description Numeric
CodeDef numeric Routine <<EOR
+
sub {
my ($ref, $name, $value, $msg) = @_;
+ use Scalar::Util qw/looks_like_number/;
- if (defined($value) and $value =~ /\A-?\d+(\.\d+)?\z/) {
+ if (looks_like_number($value)) {
return (1, $name, '');
}
else {
diff --git a/code/OrderCheck/numeric_strict.oc b/code/OrderCheck/numeric_strict.oc
new file mode 100644
index 0000000..0a6b1d1
--- /dev/null
+++ b/code/OrderCheck/numeric_strict.oc
@@ -0,0 +1,21 @@
+# Copyright 2010 Interchange Development Group and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version. See the LICENSE file for details.
+
+CodeDef numeric_strict OrderCheck
+CodeDef numeric_strict Description Numeric (strict)
+CodeDef numeric_strict Routine <<EOR
+sub {
+ my ($ref, $name, $value, $msg) = @_;
+
+ if (defined($value) and $value =~ /\A-?\d+(?:\.\d+)?\z/) {
+ return (1, $name, '');
+ }
+ else {
+ return (0, $name, defined($msg) ? $msg : 'not strict numeric');
+ }
+}
+EOR
More information about the interchange-cvs
mailing list