Skip to content
This repository has been archived by the owner on Nov 19, 2019. It is now read-only.

Commit

Permalink
extracted some meaningful methods to simplify understanding
Browse files Browse the repository at this point in the history
  • Loading branch information
travi committed Oct 20, 2014
1 parent ae72020 commit 8fa3481
Showing 1 changed file with 57 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,11 @@ public function resolveFileURI($resource)

private function flattenDeps($deps = array(), $requirement = null)
{
if (defined('JQUERY_UI_THEME')) {
$this->jsNeeds['jqueryUiTheme'][self::LOCAL] = JQUERY_UI_THEME;
} else {
$this->jsNeeds['jqueryUiTheme'][self::LOCAL] = self::DEFAULT_JQUERY_UI_THEME;
}
$this->jsNeeds['jqueryUiTheme'][self::LOCAL] = $this->determineJqueryUiTheme();

foreach ($deps as $name => $dep) {
$this->mapConfigDetails($dep, $name, $requirement);
if ($this->largeScreenVersionRequested() && $this->largeScreenEnhancementsDefined($dep)) {
$this->mapConfigDetails($dep[Request::LARGE_ENHANCEMENT], $name, $requirement);
}
$this->applyLargeScreenEnhancement($requirement, $dep, $name);
}
}

Expand All @@ -68,17 +62,8 @@ private function mapConfigDetails($dep, $name, $requirement)
{
$item = &$this->jsNeeds[$name];

if (!empty($dep[self::LOCAL])) {
$item[self::LOCAL] = $dep[self::LOCAL];
} else {
if (empty($dep[Request::LARGE_ENHANCEMENT])) {
throw new MissingLocalPathToResourceException($name);
}
}

if (isset($dep['cdn'])) {
$item['cdn'] = $dep['cdn'];
}
$this->setLocalVersion($dep, $name, $item);
$this->setCdnVersion($dep, $item);

$this->addDependenciesToListForComponent($dep, $item, self::JS_DEPENDENCIES_KEY, $requirement);
$this->addDependenciesToListForComponent($dep, $item, self::CSS_DEPENDENCIES_KEY);
Expand Down Expand Up @@ -137,4 +122,57 @@ public function setRequest($request)
{
$this->request = $request;
}

/**
* @return string
*/
private function determineJqueryUiTheme()
{
if (defined('JQUERY_UI_THEME')) {
return JQUERY_UI_THEME;
} else {
return self::DEFAULT_JQUERY_UI_THEME;
}
}

/**
* @param $requirement
* @param $dep
* @param $name
*/
private function applyLargeScreenEnhancement($requirement, $dep, $name)
{
if ($this->largeScreenVersionRequested() && $this->largeScreenEnhancementsDefined($dep)) {
$this->mapConfigDetails($dep[Request::LARGE_ENHANCEMENT], $name, $requirement);
}
}

/**
* @param $dep
* @param $name
* @param $item
* @return array
* @throws MissingLocalPathToResourceException
*/
private function setLocalVersion($dep, $name, &$item)
{
if (!empty($dep[self::LOCAL])) {
$item[self::LOCAL] = $dep[self::LOCAL];
} else {
if (empty($dep[Request::LARGE_ENHANCEMENT])) {
throw new MissingLocalPathToResourceException($name);
}
}
}

/**
* @param $dep
* @param $item
*/
private function setCdnVersion(&$dep, &$item)
{
if (isset($dep['cdn'])) {
$item['cdn'] = $dep['cdn'];
}
}
}

0 comments on commit 8fa3481

Please sign in to comment.