From 7f4102d078b24ce453c462baa55fd0c7d2d8c751 Mon Sep 17 00:00:00 2001 From: ptlis Date: Tue, 18 Feb 2014 20:57:56 +0000 Subject: [PATCH] Abstracted check for numeric key in BoundingPairFactory. --- src/BoundingPair/BoundingPairFactory.php | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/BoundingPair/BoundingPairFactory.php b/src/BoundingPair/BoundingPairFactory.php index 160b3b5..4bf08ab 100644 --- a/src/BoundingPair/BoundingPairFactory.php +++ b/src/BoundingPair/BoundingPairFactory.php @@ -155,7 +155,7 @@ private function getFromTildeArray(array $tildeArr) $lowerArr = $tildeArr; // Full version tilde match - if (array_key_exists('tilde_patch', $tildeArr) && is_numeric($tildeArr['tilde_patch'])) { + if ($this->hasNumericElement($tildeArr, 'tilde_patch')) { $lowerArr['tilde_comparator'] = '>='; $upperArr['tilde_comparator'] = '<'; @@ -163,7 +163,7 @@ private function getFromTildeArray(array $tildeArr) $upperArr['tilde_patch'] = '0'; // Major & Minor tilde match - } elseif (array_key_exists('tilde_minor', $tildeArr) && is_numeric($tildeArr['tilde_minor'])) { + } elseif ($this->hasNumericElement($tildeArr, 'tilde_minor')) { $lowerArr['tilde_comparator'] = '>='; $lowerArr['tilde_patch'] = '0'; @@ -238,13 +238,13 @@ private function getFromSingleArray(array $singleArr) $lowerArr = $singleArr; // Fully qualified version - if (array_key_exists('single_patch', $singleArr) && is_numeric($singleArr['single_patch'])) { + if ($this->hasNumericElement($singleArr, 'single_patch')) { $lowerArr['single_comparator'] = '='; $upperArr['single_comparator'] = '='; // Minor - range (minor inc by 1) - } elseif (array_key_exists('single_minor', $singleArr) && is_numeric($singleArr['single_minor'])) { + } elseif ($this->hasNumericElement($singleArr, 'single_minor')) { $lowerArr['single_comparator'] = '>='; $lowerArr['single_patch'] = '0'; @@ -291,6 +291,20 @@ private function hasArrayElement(array $arr, $key) } + /** + * Check to ensure that a numeric element exists for the given array key. + * + * @param string[] $arr + * @param string $key + * + * @return bool + */ + private function hasNumericElement(array $arr, $key) + { + return $this->hasArrayElement($arr, $key) && is_numeric($arr[$key]); + } + + /** * Safely increment a number stored as a string by one, returning a string representation of the new number. *