while ($interval =~ /\s*([\+-]?)\s*(\d+)\s*(\w+)\s*/g) {
my ($sign, $count, $type) = ($1, $2, $3);
$count = "$sign$count" if ($sign);
- $amount += $count if ($type eq 's');
+ $amount += $count if ($type =~ /^s/);
$amount += 60 * $count if ($type =~ /^m(?!o)/oi);
$amount += 60 * 60 * $count if ($type =~ /^h/);
$amount += 60 * 60 * 24 * $count if ($type =~ /^d/oi);
- $amount += 60 * 60 * 24 * 7 * $count if (defined $2 && $2 =~ /^w/oi);
+ $amount += 60 * 60 * 24 * 7 * $count if ($type =~ /^w/oi);
$amount += ((60 * 60 * 24 * 365)/12) * $count if ($type =~ /^mo/io);
$amount += 60 * 60 * 24 * 365 * $count if ($type =~ /^y/oi);
}
--- /dev/null
+#!perl -T
+
+use Test::More tests => 9;
+
+BEGIN {
+ use_ok( 'OpenSRF::Utils' );
+}
+
+is (OpenSRF::Utils::interval_to_seconds('1 second'), 1);
+is (OpenSRF::Utils::interval_to_seconds('1 minute'), 60);
+is (OpenSRF::Utils::interval_to_seconds('1 hour'), 3600);
+is (OpenSRF::Utils::interval_to_seconds('1 day'), 86400);
+is (OpenSRF::Utils::interval_to_seconds('1 week'), 604800);
+is (OpenSRF::Utils::interval_to_seconds('1 month'), 2628000);
+is (OpenSRF::Utils::interval_to_seconds('1 year'), 31536000);
+is (OpenSRF::Utils::interval_to_seconds('1 year 1 second'), 31536001);