1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-22 14:52:41 +01:00

Refine handling of "@task" attributes in Diviner

Summary: Ref T13505. See that task for details. When a class has exactly one "@task" block, this API returns a string. Some day, this should be made more consistent.

Test Plan: Viewed a class with exactly one "@task", no more fatal. Viewed classes with zero and more than one "@task" attributes, got clean renderings.

Maniphest Tasks: T13505

Differential Revision: https://secure.phabricator.com/D21062
This commit is contained in:
epriestley 2020-04-06 11:47:55 -07:00
parent 271e104c7e
commit 58fbf64a27

View file

@ -435,6 +435,15 @@ final class DivinerAtomController extends DivinerController {
$task_specs = array(); $task_specs = array();
$tasks = $symbol->getAtom()->getDocblockMetaValue('task'); $tasks = $symbol->getAtom()->getDocblockMetaValue('task');
if (!is_array($tasks)) {
if (strlen($tasks)) {
$tasks = array($tasks);
} else {
$tasks = array();
}
}
if ($tasks) { if ($tasks) {
foreach ($tasks as $task) { foreach ($tasks as $task) {
list($name, $title) = explode(' ', $task, 2); list($name, $title) = explode(' ', $task, 2);