Skip to content

Commit

Permalink
Abstracted check for numeric key in BoundingPairFactory.
Browse files Browse the repository at this point in the history
  • Loading branch information
ptlis committed Feb 18, 2014
1 parent b3808fa commit 7f4102d
Showing 1 changed file with 18 additions and 4 deletions.
22 changes: 18 additions & 4 deletions src/BoundingPair/BoundingPairFactory.php
Expand Up @@ -155,15 +155,15 @@ 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'] = '<';
$upperArr['tilde_minor'] = $this->stringPlusOne($upperArr['tilde_minor']);
$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';

Expand Down Expand Up @@ -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';

Expand Down Expand Up @@ -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.
*
Expand Down

0 comments on commit 7f4102d

Please sign in to comment.