@@ -81,7 +81,7 @@ discard block |
||
81 | 81 | */ |
82 | 82 | public static function fixed(string $nominative, string $genitive): Relationship |
83 | 83 | { |
84 | - return new static(fn () => [$nominative, $genitive]); |
|
84 | + return new static(fn() => [$nominative, $genitive]); |
|
85 | 85 | } |
86 | 86 | |
87 | 87 | /** |
@@ -126,9 +126,9 @@ discard block |
||
126 | 126 | */ |
127 | 127 | public function adopted(): Relationship |
128 | 128 | { |
129 | - $this->matchers[] = fn (array $nodes): bool => count($nodes) > 2 && $nodes[2] |
|
129 | + $this->matchers[] = fn(array $nodes): bool => count($nodes) > 2 && $nodes[2] |
|
130 | 130 | ->facts(['FAMC'], false, Auth::PRIV_HIDE) |
131 | - ->contains(fn (Fact $fact): bool => $fact->value() === '@' . $nodes[1]->xref() . '@' && $fact->attribute('PEDI') === 'adopted'); |
|
131 | + ->contains(fn(Fact $fact): bool => $fact->value() === '@' . $nodes[1]->xref() . '@' && $fact->attribute('PEDI') === 'adopted'); |
|
132 | 132 | |
133 | 133 | return $this; |
134 | 134 | } |
@@ -138,9 +138,9 @@ discard block |
||
138 | 138 | */ |
139 | 139 | public function adoptive(): Relationship |
140 | 140 | { |
141 | - $this->matchers[] = fn (array $nodes): bool => $nodes[0] |
|
141 | + $this->matchers[] = fn(array $nodes): bool => $nodes[0] |
|
142 | 142 | ->facts(['FAMC'], false, Auth::PRIV_HIDE) |
143 | - ->contains(fn (Fact $fact): bool => $fact->value() === '@' . $nodes[1]->xref() . '@' && $fact->attribute('PEDI') === 'adopted'); |
|
143 | + ->contains(fn(Fact $fact): bool => $fact->value() === '@' . $nodes[1]->xref() . '@' && $fact->attribute('PEDI') === 'adopted'); |
|
144 | 144 | |
145 | 145 | return $this; |
146 | 146 | } |
@@ -346,9 +346,9 @@ discard block |
||
346 | 346 | */ |
347 | 347 | public function fostered(): Relationship |
348 | 348 | { |
349 | - $this->matchers[] = fn (array $nodes): bool => count($nodes) > 2 && $nodes[2] |
|
349 | + $this->matchers[] = fn(array $nodes): bool => count($nodes) > 2 && $nodes[2] |
|
350 | 350 | ->facts(['FAMC'], false, Auth::PRIV_HIDE) |
351 | - ->contains(fn (Fact $fact): bool => $fact->value() === '@' . $nodes[1]->xref() . '@' && $fact->attribute('PEDI') === 'foster'); |
|
351 | + ->contains(fn(Fact $fact): bool => $fact->value() === '@' . $nodes[1]->xref() . '@' && $fact->attribute('PEDI') === 'foster'); |
|
352 | 352 | |
353 | 353 | return $this; |
354 | 354 | } |
@@ -358,9 +358,9 @@ discard block |
||
358 | 358 | */ |
359 | 359 | public function fostering(): Relationship |
360 | 360 | { |
361 | - $this->matchers[] = fn (array $nodes): bool => $nodes[0] |
|
361 | + $this->matchers[] = fn(array $nodes): bool => $nodes[0] |
|
362 | 362 | ->facts(['FAMC'], false, Auth::PRIV_HIDE) |
363 | - ->contains(fn (Fact $fact): bool => $fact->value() === '@' . $nodes[1]->xref() . '@' && $fact->attribute('PEDI') === 'foster'); |
|
363 | + ->contains(fn(Fact $fact): bool => $fact->value() === '@' . $nodes[1]->xref() . '@' && $fact->attribute('PEDI') === 'foster'); |
|
364 | 364 | |
365 | 365 | return $this; |
366 | 366 | } |
@@ -404,8 +404,8 @@ discard block |
||
404 | 404 | { |
405 | 405 | $this->matchers[] = static function (array $nodes): bool { |
406 | 406 | if (count($nodes) > 2) { |
407 | - $date1 = $nodes[0]->facts(['BIRT'], false, Auth::PRIV_HIDE)->map(fn (Fact $fact): Date => $fact->date())->first() ?? new Date(''); |
|
408 | - $date2 = $nodes[2]->facts(['BIRT'], false, Auth::PRIV_HIDE)->map(fn (Fact $fact): Date => $fact->date())->first() ?? new Date(''); |
|
407 | + $date1 = $nodes[0]->facts(['BIRT'], false, Auth::PRIV_HIDE)->map(fn(Fact $fact): Date => $fact->date())->first() ?? new Date(''); |
|
408 | + $date2 = $nodes[2]->facts(['BIRT'], false, Auth::PRIV_HIDE)->map(fn(Fact $fact): Date => $fact->date())->first() ?? new Date(''); |
|
409 | 409 | |
410 | 410 | return Date::compare($date1, $date2) > 0; |
411 | 411 | } |
@@ -508,8 +508,8 @@ discard block |
||
508 | 508 | { |
509 | 509 | $this->matchers[] = static function (array $nodes): bool { |
510 | 510 | if (count($nodes) > 2) { |
511 | - $date1 = $nodes[0]->facts(['BIRT'], false, Auth::PRIV_HIDE)->map(fn (Fact $fact): Date => $fact->date())->first() ?? new Date(''); |
|
512 | - $date2 = $nodes[2]->facts(['BIRT'], false, Auth::PRIV_HIDE)->map(fn (Fact $fact): Date => $fact->date())->first() ?? new Date(''); |
|
511 | + $date1 = $nodes[0]->facts(['BIRT'], false, Auth::PRIV_HIDE)->map(fn(Fact $fact): Date => $fact->date())->first() ?? new Date(''); |
|
512 | + $date2 = $nodes[2]->facts(['BIRT'], false, Auth::PRIV_HIDE)->map(fn(Fact $fact): Date => $fact->date())->first() ?? new Date(''); |
|
513 | 513 | |
514 | 514 | return |
515 | 515 | $date1->isOK() && |
@@ -540,8 +540,8 @@ discard block |
||
540 | 540 | { |
541 | 541 | $this->matchers[] = static function (array $nodes): bool { |
542 | 542 | if (count($nodes) > 2) { |
543 | - $date1 = $nodes[0]->facts(['BIRT'], false, Auth::PRIV_HIDE)->map(fn (Fact $fact): Date => $fact->date())->first() ?? new Date(''); |
|
544 | - $date2 = $nodes[2]->facts(['BIRT'], false, Auth::PRIV_HIDE)->map(fn (Fact $fact): Date => $fact->date())->first() ?? new Date(''); |
|
543 | + $date1 = $nodes[0]->facts(['BIRT'], false, Auth::PRIV_HIDE)->map(fn(Fact $fact): Date => $fact->date())->first() ?? new Date(''); |
|
544 | + $date2 = $nodes[2]->facts(['BIRT'], false, Auth::PRIV_HIDE)->map(fn(Fact $fact): Date => $fact->date())->first() ?? new Date(''); |
|
545 | 545 | |
546 | 546 | return Date::compare($date1, $date2) < 0; |
547 | 547 | } |
@@ -118,15 +118,15 @@ discard block |
||
118 | 118 | public function relationships(): array |
119 | 119 | { |
120 | 120 | // Genitive forms in English are simple/regular, as no relationship name ends in "s". |
121 | - $genitive = fn (string $s): array => [$s, $s . '’s %s']; |
|
121 | + $genitive = fn(string $s): array => [$s, $s . '’s %s']; |
|
122 | 122 | |
123 | - $cousin = fn (int $up, int $down): array => $genitive( |
|
123 | + $cousin = fn(int $up, int $down): array => $genitive( |
|
124 | 124 | (static::COUSIN[min($up, $down)] ?? 'distant cousin') . |
125 | 125 | (static::REMOVED[abs($up - $down)] ?? ' many times removed') . |
126 | 126 | static::DIRECTION[$up <=> $down] |
127 | 127 | ); |
128 | 128 | |
129 | - $great = fn (int $n, string $prefix, string $suffix): array => $genitive( |
|
129 | + $great = fn(int $n, string $prefix, string $suffix): array => $genitive( |
|
130 | 130 | $prefix . ($n > 3 ? 'great ×' . $n . ' ' : str_repeat('great-', $n)) . $suffix |
131 | 131 | ); |
132 | 132 | |
@@ -221,22 +221,22 @@ discard block |
||
221 | 221 | Relationship::fixed('grandson', 'grandson’s %s')->child()->son(), |
222 | 222 | Relationship::fixed('grandchild', 'grandchild’s %s')->child()->child(), |
223 | 223 | // Relationships with dynamically generated names |
224 | - Relationship::dynamic(fn (int $n) => $great($n - 1, '', 'aunt'))->ancestor()->sister(), |
|
225 | - Relationship::dynamic(fn (int $n) => $great($n - 1, '', 'aunt'))->ancestor()->sibling()->wife(), |
|
226 | - Relationship::dynamic(fn (int $n) => $great($n - 1, '', 'uncle'))->ancestor()->brother(), |
|
227 | - Relationship::dynamic(fn (int $n) => $great($n - 1, '', 'uncle'))->ancestor()->sibling()->husband(), |
|
228 | - Relationship::dynamic(fn (int $n) => $great($n - 1, '', 'niece'))->sibling()->descendant()->female(), |
|
229 | - Relationship::dynamic(fn (int $n) => $great($n - 1, '', 'niece'))->married()->spouse()->sibling()->descendant()->female(), |
|
230 | - Relationship::dynamic(fn (int $n) => $great($n - 1, '', 'nephew'))->sibling()->descendant()->male(), |
|
231 | - Relationship::dynamic(fn (int $n) => $great($n - 1, '', 'nephew'))->married()->spouse()->sibling()->descendant()->male(), |
|
232 | - Relationship::dynamic(fn (int $n) => $great($n - 2, 'maternal ', 'grandmother'))->mother()->ancestor()->female(), |
|
233 | - Relationship::dynamic(fn (int $n) => $great($n - 1, 'maternal ', 'grandfather'))->mother()->ancestor()->male(), |
|
234 | - Relationship::dynamic(fn (int $n) => $great($n - 1, 'paternal ', 'grandmother'))->father()->ancestor()->female(), |
|
235 | - Relationship::dynamic(fn (int $n) => $great($n - 1, 'paternal ', 'grandfather'))->father()->ancestor()->male(), |
|
236 | - Relationship::dynamic(fn (int $n) => $great($n - 1, '', 'grandparent'))->ancestor(), |
|
237 | - Relationship::dynamic(fn (int $n) => $great($n - 2, '', 'granddaughter'))->descendant()->female(), |
|
238 | - Relationship::dynamic(fn (int $n) => $great($n - 2, '', 'grandson'))->descendant()->male(), |
|
239 | - Relationship::dynamic(fn (int $n) => $great($n - 2, '', 'grandchild'))->descendant(), |
|
224 | + Relationship::dynamic(fn(int $n) => $great($n - 1, '', 'aunt'))->ancestor()->sister(), |
|
225 | + Relationship::dynamic(fn(int $n) => $great($n - 1, '', 'aunt'))->ancestor()->sibling()->wife(), |
|
226 | + Relationship::dynamic(fn(int $n) => $great($n - 1, '', 'uncle'))->ancestor()->brother(), |
|
227 | + Relationship::dynamic(fn(int $n) => $great($n - 1, '', 'uncle'))->ancestor()->sibling()->husband(), |
|
228 | + Relationship::dynamic(fn(int $n) => $great($n - 1, '', 'niece'))->sibling()->descendant()->female(), |
|
229 | + Relationship::dynamic(fn(int $n) => $great($n - 1, '', 'niece'))->married()->spouse()->sibling()->descendant()->female(), |
|
230 | + Relationship::dynamic(fn(int $n) => $great($n - 1, '', 'nephew'))->sibling()->descendant()->male(), |
|
231 | + Relationship::dynamic(fn(int $n) => $great($n - 1, '', 'nephew'))->married()->spouse()->sibling()->descendant()->male(), |
|
232 | + Relationship::dynamic(fn(int $n) => $great($n - 2, 'maternal ', 'grandmother'))->mother()->ancestor()->female(), |
|
233 | + Relationship::dynamic(fn(int $n) => $great($n - 1, 'maternal ', 'grandfather'))->mother()->ancestor()->male(), |
|
234 | + Relationship::dynamic(fn(int $n) => $great($n - 1, 'paternal ', 'grandmother'))->father()->ancestor()->female(), |
|
235 | + Relationship::dynamic(fn(int $n) => $great($n - 1, 'paternal ', 'grandfather'))->father()->ancestor()->male(), |
|
236 | + Relationship::dynamic(fn(int $n) => $great($n - 1, '', 'grandparent'))->ancestor(), |
|
237 | + Relationship::dynamic(fn(int $n) => $great($n - 2, '', 'granddaughter'))->descendant()->female(), |
|
238 | + Relationship::dynamic(fn(int $n) => $great($n - 2, '', 'grandson'))->descendant()->male(), |
|
239 | + Relationship::dynamic(fn(int $n) => $great($n - 2, '', 'grandchild'))->descendant(), |
|
240 | 240 | Relationship::dynamic($cousin)->ancestor()->sibling()->descendant(), |
241 | 241 | ]; |
242 | 242 | } |
@@ -34,12 +34,12 @@ discard block |
||
34 | 34 | 1 => [ |
35 | 35 | 'F' => ['cousine germaine', '$s de la cousine germaine'], |
36 | 36 | 'M' => ['cousin germain', '$s du cousin germain'], |
37 | - 'U' => ['cousin germain', '%s du cousin germain' ] |
|
37 | + 'U' => ['cousin germain', '%s du cousin germain'] |
|
38 | 38 | ], |
39 | 39 | 2 => [ |
40 | 40 | 'F' => ['cousine issue de germain', '$s de la cousine issue de germain'], |
41 | 41 | 'M' => ['cousin issu de germain', '$s du cousin issu de germain'], |
42 | - 'U' => ['cousin issu de germain', '%s du cousin issu de germain' ] |
|
42 | + 'U' => ['cousin issu de germain', '%s du cousin issu de germain'] |
|
43 | 43 | ] |
44 | 44 | ]; |
45 | 45 | |
@@ -66,20 +66,20 @@ discard block |
||
66 | 66 | |
67 | 67 | public function relationships(): array |
68 | 68 | { |
69 | - $genitive = fn (string $s, string $genitive_link): array => [$s, '%s ' . $genitive_link . $s]; |
|
69 | + $genitive = fn(string $s, string $genitive_link): array => [$s, '%s ' . $genitive_link . $s]; |
|
70 | 70 | |
71 | - $great = fn (int $n, string $suffix, string $genitive_link): array => $genitive( |
|
71 | + $great = fn(int $n, string $suffix, string $genitive_link): array => $genitive( |
|
72 | 72 | ($n > 2 ? 'arrière-(x' . $n . ')-' : str_repeat('arrière-', max($n, 0))) . $suffix, |
73 | 73 | $n === 0 ? $genitive_link : 'de l’' |
74 | 74 | ); |
75 | 75 | |
76 | 76 | $compoundgreat = |
77 | - fn (int $n, string $first_level, string $suffix, string $genitive_none, string $genitive_first): array => |
|
78 | - $great($n - 1, ($n > 0 ? $first_level : '' ) . $suffix, $n === 0 ? $genitive_none : $genitive_first); |
|
77 | + fn(int $n, string $first_level, string $suffix, string $genitive_none, string $genitive_first): array => |
|
78 | + $great($n - 1, ($n > 0 ? $first_level : '') . $suffix, $n === 0 ? $genitive_none : $genitive_first); |
|
79 | 79 | |
80 | 80 | $symmetricCousin = fn(int $n, string $sex): array => self::SYMMETRIC_COUSINS[$n][$sex] ?? $genitive( |
81 | 81 | $sex === 'F' ? 'cousine au ' . $n . '<sup>e</sup> degré' : 'cousin au ' . $n . '<sup>e</sup> degré', |
82 | - $sex === 'F' ? 'de la ' : 'du ' |
|
82 | + $sex === 'F' ? 'de la ' : 'du ' |
|
83 | 83 | ); |
84 | 84 | |
85 | 85 | $asymmetricCousin = |
@@ -94,9 +94,8 @@ discard block |
||
94 | 94 | } |
95 | 95 | return $genitive( |
96 | 96 | $sex === 'F' ? |
97 | - 'cousine du ' . $down . '<sup>e</sup> au ' . $up . '<sup>e</sup> degré' : |
|
98 | - 'cousin du ' . $down . '<sup>e</sup> au ' . $up . '<sup>e</sup> degré', |
|
99 | - $sex === 'F' ? 'de la ' : 'du ' |
|
97 | + 'cousine du ' . $down . '<sup>e</sup> au ' . $up . '<sup>e</sup> degré' : 'cousin du ' . $down . '<sup>e</sup> au ' . $up . '<sup>e</sup> degré', |
|
98 | + $sex === 'F' ? 'de la ' : 'du ' |
|
100 | 99 | ); |
101 | 100 | }; |
102 | 101 | |
@@ -174,26 +173,26 @@ discard block |
||
174 | 173 | Relationship::fixed('beau-frère', '%s du beau-frère')->sibling()->husband(), |
175 | 174 | Relationship::fixed('beau-frère/belle-sœur', '%s du beau-frère/belle-sœur')->sibling()->spouse(), |
176 | 175 | // Grandparents and above |
177 | - Relationship::dynamic(fn (int $n) => $great($n - 1, 'grand-mère maternelle', 'de la '))->mother()->ancestor()->female(), |
|
178 | - Relationship::dynamic(fn (int $n) => $great($n - 1, 'grand-père maternel', 'du '))->mother()->ancestor()->male(), |
|
179 | - Relationship::dynamic(fn (int $n) => $great($n - 1, 'grand-mère paternelle', 'de la '))->father()->ancestor()->female(), |
|
180 | - Relationship::dynamic(fn (int $n) => $great($n - 1, 'grand-père paternel', 'du '))->father()->ancestor()->male(), |
|
181 | - Relationship::dynamic(fn (int $n) => $great($n - 2, 'grand-mère', 'de la '))->ancestor()->female(), |
|
182 | - Relationship::dynamic(fn (int $n) => $great($n - 2, 'grand-père', 'du '))->ancestor()->male(), |
|
183 | - Relationship::dynamic(fn (int $n) => $great($n - 2, 'grand-parent', 'du '))->ancestor(), |
|
176 | + Relationship::dynamic(fn(int $n) => $great($n - 1, 'grand-mère maternelle', 'de la '))->mother()->ancestor()->female(), |
|
177 | + Relationship::dynamic(fn(int $n) => $great($n - 1, 'grand-père maternel', 'du '))->mother()->ancestor()->male(), |
|
178 | + Relationship::dynamic(fn(int $n) => $great($n - 1, 'grand-mère paternelle', 'de la '))->father()->ancestor()->female(), |
|
179 | + Relationship::dynamic(fn(int $n) => $great($n - 1, 'grand-père paternel', 'du '))->father()->ancestor()->male(), |
|
180 | + Relationship::dynamic(fn(int $n) => $great($n - 2, 'grand-mère', 'de la '))->ancestor()->female(), |
|
181 | + Relationship::dynamic(fn(int $n) => $great($n - 2, 'grand-père', 'du '))->ancestor()->male(), |
|
182 | + Relationship::dynamic(fn(int $n) => $great($n - 2, 'grand-parent', 'du '))->ancestor(), |
|
184 | 183 | // Grandchildren and below |
185 | - Relationship::dynamic(fn (int $n) => $great($n - 2, 'petite-fille', 'de la '))->descendant()->female(), |
|
186 | - Relationship::dynamic(fn (int $n) => $great($n - 2, 'petit-fils', 'du '))->descendant()->male(), |
|
187 | - Relationship::dynamic(fn (int $n) => $great($n - 2, 'petit-enfant', 'du'))->descendant(), |
|
184 | + Relationship::dynamic(fn(int $n) => $great($n - 2, 'petite-fille', 'de la '))->descendant()->female(), |
|
185 | + Relationship::dynamic(fn(int $n) => $great($n - 2, 'petit-fils', 'du '))->descendant()->male(), |
|
186 | + Relationship::dynamic(fn(int $n) => $great($n - 2, 'petit-enfant', 'du'))->descendant(), |
|
188 | 187 | // Collateral relatives |
189 | - Relationship::dynamic(fn (int $n) => $compoundgreat($n - 1, 'grand-', 'tante', 'de la ', 'de la '))->ancestor()->sister(), |
|
190 | - Relationship::dynamic(fn (int $n) => $compoundgreat($n - 1, 'grand-', 'tante par alliance', 'de la ', 'de la '))->ancestor()->sibling()->wife(), |
|
191 | - Relationship::dynamic(fn (int $n) => $compoundgreat($n - 1, 'grand-', 'oncle', 'de l’', 'du '))->ancestor()->brother(), |
|
192 | - Relationship::dynamic(fn (int $n) => $compoundgreat($n - 1, 'grand-', 'oncle par alliance', 'de l’', 'du '))->ancestor()->sibling()->husband(), |
|
193 | - Relationship::dynamic(fn (int $n) => $compoundgreat($n - 1, 'petite-', 'nièce', 'de la ', 'de la '))->sibling()->descendant()->female(), |
|
194 | - Relationship::dynamic(fn (int $n) => $compoundgreat($n - 1, 'petite-', 'nièce par alliance', 'de la ', 'de la '))->married()->spouse()->sibling()->descendant()->female(), |
|
195 | - Relationship::dynamic(fn (int $n) => $compoundgreat($n - 1, 'petit-', 'neveu', 'du ', 'du '))->sibling()->descendant()->male(), |
|
196 | - Relationship::dynamic(fn (int $n) => $compoundgreat($n - 1, 'petit-', 'neveu par alliance', 'du ', 'du '))->married()->spouse()->sibling()->descendant()->male(), |
|
188 | + Relationship::dynamic(fn(int $n) => $compoundgreat($n - 1, 'grand-', 'tante', 'de la ', 'de la '))->ancestor()->sister(), |
|
189 | + Relationship::dynamic(fn(int $n) => $compoundgreat($n - 1, 'grand-', 'tante par alliance', 'de la ', 'de la '))->ancestor()->sibling()->wife(), |
|
190 | + Relationship::dynamic(fn(int $n) => $compoundgreat($n - 1, 'grand-', 'oncle', 'de l’', 'du '))->ancestor()->brother(), |
|
191 | + Relationship::dynamic(fn(int $n) => $compoundgreat($n - 1, 'grand-', 'oncle par alliance', 'de l’', 'du '))->ancestor()->sibling()->husband(), |
|
192 | + Relationship::dynamic(fn(int $n) => $compoundgreat($n - 1, 'petite-', 'nièce', 'de la ', 'de la '))->sibling()->descendant()->female(), |
|
193 | + Relationship::dynamic(fn(int $n) => $compoundgreat($n - 1, 'petite-', 'nièce par alliance', 'de la ', 'de la '))->married()->spouse()->sibling()->descendant()->female(), |
|
194 | + Relationship::dynamic(fn(int $n) => $compoundgreat($n - 1, 'petit-', 'neveu', 'du ', 'du '))->sibling()->descendant()->male(), |
|
195 | + Relationship::dynamic(fn(int $n) => $compoundgreat($n - 1, 'petit-', 'neveu par alliance', 'du ', 'du '))->married()->spouse()->sibling()->descendant()->male(), |
|
197 | 196 | // Cousins (based on canon law) |
198 | 197 | Relationship::dynamic(fn(int $n) => $symmetricCousin($n, 'F'))->symmetricCousin()->female(), |
199 | 198 | Relationship::dynamic(fn(int $n) => $symmetricCousin($n, 'M'))->symmetricCousin()->male(), |