mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-26 16:52:41 +01:00
Add "and" support to "ref"
Summary: Fixes T8038. Allow `PhabricatorCustomFieldMonogramParser` to handle "and". This means that `Ref Tx, Ty and Tz` will correctly return `array('monograms' => array('Tx', 'Ty', 'Tz')`. Test Plan: Added unit tests. Reviewers: epriestley, #blessed_reviewers Reviewed By: epriestley, #blessed_reviewers Subscribers: epriestley Maniphest Tasks: T2, T3, T1, T8038 Differential Revision: https://secure.phabricator.com/D12682
This commit is contained in:
parent
16ce63ec20
commit
6bebb3c69a
2 changed files with 19 additions and 2 deletions
|
@ -60,6 +60,16 @@ final class ManiphestCustomFieldStatusParserTestCase
|
||||||
'offset' => 0,
|
'offset' => 0,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
'Fixes T123, T456, and T789.' => array(
|
||||||
|
array(
|
||||||
|
'match' => 'Fixes T123, T456, and T789',
|
||||||
|
'prefix' => 'Fixes',
|
||||||
|
'infix' => '',
|
||||||
|
'monograms' => array('T123', 'T456', 'T789'),
|
||||||
|
'suffix' => '',
|
||||||
|
'offset' => 0,
|
||||||
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach ($map as $input => $expect) {
|
foreach ($map as $input => $expect) {
|
||||||
|
|
|
@ -25,6 +25,7 @@ abstract class PhabricatorCustomFieldMonogramParser
|
||||||
$prefix_regex.
|
$prefix_regex.
|
||||||
$infix_regex.
|
$infix_regex.
|
||||||
'((?:'.$monogram_pattern.'[,\s]*)+)'.
|
'((?:'.$monogram_pattern.'[,\s]*)+)'.
|
||||||
|
'(?:\band\s+('.$monogram_pattern.'))?'.
|
||||||
$suffix_regex.
|
$suffix_regex.
|
||||||
'(?:$|\b)'.
|
'(?:$|\b)'.
|
||||||
'/';
|
'/';
|
||||||
|
@ -42,12 +43,18 @@ abstract class PhabricatorCustomFieldMonogramParser
|
||||||
|
|
||||||
$results = array();
|
$results = array();
|
||||||
foreach ($matches as $set) {
|
foreach ($matches as $set) {
|
||||||
|
$monograms = array_filter(preg_split('/[,\s]+/', $set[3][0]));
|
||||||
|
|
||||||
|
if (isset($set[4]) && $set[4][0]) {
|
||||||
|
$monograms[] = $set[4][0];
|
||||||
|
}
|
||||||
|
|
||||||
$results[] = array(
|
$results[] = array(
|
||||||
'match' => $set[0][0],
|
'match' => $set[0][0],
|
||||||
'prefix' => $set[1][0],
|
'prefix' => $set[1][0],
|
||||||
'infix' => $set[2][0],
|
'infix' => $set[2][0],
|
||||||
'monograms' => array_filter(preg_split('/[,\s]+/', $set[3][0])),
|
'monograms' => $monograms,
|
||||||
'suffix' => idx(idx($set, 4, array()), 0, ''),
|
'suffix' => idx(idx($set, 5, array()), 0, ''),
|
||||||
'offset' => $set[0][1],
|
'offset' => $set[0][1],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue