round reliability stats
[irspy-moved-to-github.git] / lib / ZOOM / IRSpy / Utils.pm
index 4f2580c..4c73adf 100644 (file)
@@ -9,6 +9,8 @@ use Scalar::Util;
 
 use Exporter 'import';
 our @EXPORT_OK = qw(utf8param
+                   trimField
+                   utf8paramTrim
                    isodate
                    xml_encode 
                    cql_quote
@@ -82,7 +84,6 @@ sub utf8param {
     return $cooked;
 }
 
-
 # Utility functions follow, exported for use of web UI
 sub utf8param_apache1 {
     my($r, $key, $value) = @_;
@@ -104,8 +105,8 @@ sub isodate {
                   $year+1900, $mon+1, $mday, $hour, $min, $sec);
 }
 
-# strips whitespaces and start and ends of fields
-sub trimFields {
+# strips whitespaces at start and ends of a field
+sub trimField {
     my $field  = shift;
 
     $field =~ s/^\s+//;
@@ -114,6 +115,17 @@ sub trimFields {
     return $field;
 }
 
+# utf8param() with trim
+sub utf8paramTrim {
+    my $result = utf8param(@_);
+
+    if (defined $result) {
+       $result = trimField($result);   
+    }
+
+    return $result;
+}
+
 # I can't -- just can't, can't, can't -- believe that this function
 # isn't provided by one of the core XML modules.  But the evidence all
 # says that it's not: among other things, XML::Generator and
@@ -804,7 +816,7 @@ sub calc_reliability_stats {
     return (0, 0, 0) if $nall == 0;
     my @okpings = $xc->findnodes('i:status/i:probe[@ok = "1"]');
     my $nok = @okpings;
-    my $percent = int(100*$nok/$nall);
+    my $percent = int(100*$nok/$nall + 0.5);
     return ($nok, $nall, $percent);
 }