Skip to content

Commit

Permalink
Improved code climate
Browse files Browse the repository at this point in the history
  • Loading branch information
jkphl committed May 16, 2016
1 parent d201241 commit 0fac026
Showing 1 changed file with 26 additions and 12 deletions.
38 changes: 26 additions & 12 deletions src/Resource/Domain/Model/Resource/AbstractResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -223,24 +223,38 @@ function ($pathIdentifier) {
*
* @param array $partMethod Part method components
* @param array $arguments Part method arguments
* @return mixed|AbstractResource Self reference
* @return mixed|AbstractResource Getter result / self reference
*/
protected function callPartMethod(array $partMethod, array $arguments)
{
$partMethod = $partMethod[1];
$isGetterMethod = (!strncmp('get', $partMethod, 3));
$delegateArguments = $isGetterMethod ? array() : array_slice($arguments, 0, 1);
$subpartPathArgIndex = $isGetterMethod ? 0 : 1;
$subparts = $this->partPath(
(count($arguments) > $subpartPathArgIndex) ? $arguments[$subpartPathArgIndex] : '/'
);
$delegateResult = $this->part()->delegate($partMethod, $subparts, $delegateArguments);
return strncmp('get', $partMethod, 3)
? $this->callNonGetterPartMethod($partMethod, $arguments)
: $this->callGetterPartMethod($partMethod, $arguments);
}

if ($isGetterMethod) {
return $delegateResult;
}
/**
* Call a getter method on one of the subparts
*
* @param string $partMethod Part method
* @param array $arguments Part method arguments
* @return mixed Getter result
*/
protected function callGetterPartMethod($partMethod, array $arguments) {
$subparts = $this->partPath(count($arguments) ? $arguments[0] : '/');
return $this->part()->delegate($partMethod, $subparts, []);
}

$this->part = $delegateResult;
/**
* Call a non-getter method on one of the subparts
*
* @param string $partMethod Part method
* @param array $arguments Part method arguments
* @return AbstractResource Self reference
*/
protected function callNonGetterPartMethod($partMethod, array $arguments) {
$subparts = $this->partPath((count($arguments) > 1) ? $arguments[1] : '/');
$this->part = $this->part()->delegate($partMethod, $subparts, array_slice($arguments, 0, 1));
return $this;
}
}

0 comments on commit 0fac026

Please sign in to comment.