Skip to content

Commit

Permalink
[REFACTOR] Refactor code
Browse files Browse the repository at this point in the history
  • Loading branch information
beromir committed Nov 9, 2021
1 parent 8842bcc commit ffe6b06
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 33 deletions.
66 changes: 33 additions & 33 deletions Classes/FusionObjects/Ray.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ class Ray extends AbstractArrayFusionObject
*/
protected $ignoreProperties = ['__meta', 'debugAction', 'value'];

protected $allowedDebugActions = ['nodetypename', 'context', 'contextpath', 'properties'];

/**
* @return void
*/
Expand All @@ -24,46 +26,25 @@ public function evaluate(): void
$debugAction = strtolower($this->fusionValue('debugAction'));
$debugValue = $this->fusionValue('value');

$debugValue = ($debugValue === null) ? 'ignore' : $debugValue;

if (!empty($this->fusionValue('once'))) {
$this->debug(null, $debugAction);
if (is_string($debugAction) && in_array($debugAction, $this->allowedDebugActions)) {
$this->debugNodes($debugValue, $debugAction);
} elseif (is_string($debugAction) && !empty($debugAction)) {
ray()->once('The debug action is not known.');
} else {
if (!empty($debugValue)) {
if (is_array($debugValue) && is_object($debugValue[0]) && (get_class($debugValue[0]) === 'Neos\ContentRepository\Domain\Model\Node')) {
foreach ($debugValue as $node) {
try {
$this->debug($node, $debugAction);
} catch (Exception $e) {
ray()->exception($e);
}
}
} else {
$this->debug($debugValue, $debugAction);
}
}
$this->debug($debugValue);
}
}

/**
* @param $debugValue
* @param string $debugAction
*
* @return void
*/
private function debug($debugValue = null, string $debugAction = ''): void
private function debug($debugValue): void
{
ray(function () use ($debugValue, $debugAction) {
ray(function () use ($debugValue) {

$debug = ray();

if (!empty($debugValue) && !empty($debugAction)) {
if (is_object($debugValue) && (get_class($debugValue) === 'Neos\ContentRepository\Domain\Model\Node')) {
$debug = ray($this->getNodeData($debugValue, $debugAction));
}
} elseif (!empty($debugValue)) {
$debug = ray($debugValue);
}
$debug = ray($debugValue);

foreach (array_keys($this->properties) as $key) {
if (in_array($key, $this->ignoreProperties)) {
Expand All @@ -89,10 +70,6 @@ private function debug($debugValue = null, string $debugAction = ''): void
*/
private function getNodeData($debugValue, string $debugAction)
{
if (get_class($debugValue) !== 'Neos\ContentRepository\Domain\Model\Node') {
return null;
}

switch ($debugAction) {
case strtolower('nodeTypeName'):
try {
Expand All @@ -116,4 +93,27 @@ private function getNodeData($debugValue, string $debugAction)
return null;
}
}

/**
* @param $debugValues
* @param string $debugAction
*
* @return void
*/
private function debugNodes($debugValues, string $debugAction): void
{
if (is_array($debugValues)) {
$debugArray = [];

foreach ($debugValues as $debugValue) {
if (is_object($debugValue) && (get_class($debugValue) === 'Neos\ContentRepository\Domain\Model\Node')) {
array_push($debugArray, $this->getNodeData($debugValue, $debugAction));
}
}

if (!empty($debugArray)) $this->debug($debugArray);
} elseif (is_object($debugValues) && (get_class($debugValues) === 'Neos\ContentRepository\Domain\Model\Node')) {
$this->debug($this->getNodeData($debugValues, $debugAction));
}
}
}
2 changes: 2 additions & 0 deletions Resources/Private/Fusion/FusionObject/Debug.fusion
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ prototype(Beromir.Ray:Debug) {
mode = 'uncached'
context {
1 = 'node'
2 = 'site'
3 = 'documentNode'
}
}
}

0 comments on commit ffe6b06

Please sign in to comment.