summaryrefslogtreecommitdiff
path: root/app/Census/AbstractCensusColumn.php
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@webtrees.net>2019-05-17 15:42:02 +0100
committerGreg Roach <fisharebest@webtrees.net>2019-05-17 15:42:02 +0100
commit4ecdc95f55b633d2526da60d81dd95edbebd5228 (patch)
treef0be679af6fad5ce0e53f527cbc04e0804274355 /app/Census/AbstractCensusColumn.php
parent23a3423962031084f4e4e500a7152510afa573bc (diff)
downloadwebtrees-4ecdc95f55b633d2526da60d81dd95edbebd5228.tar.gz
webtrees-4ecdc95f55b633d2526da60d81dd95edbebd5228.tar.bz2
webtrees-4ecdc95f55b633d2526da60d81dd95edbebd5228.zip
Simplify function using collections
Diffstat (limited to 'app/Census/AbstractCensusColumn.php')
-rw-r--r--app/Census/AbstractCensusColumn.php35
1 files changed, 14 insertions, 21 deletions
diff --git a/app/Census/AbstractCensusColumn.php b/app/Census/AbstractCensusColumn.php
index 2339062427..c5193a2b43 100644
--- a/app/Census/AbstractCensusColumn.php
+++ b/app/Census/AbstractCensusColumn.php
@@ -20,6 +20,9 @@ namespace Fisharebest\Webtrees\Census;
use Fisharebest\Webtrees\Date;
use Fisharebest\Webtrees\Family;
use Fisharebest\Webtrees\Individual;
+use function array_slice;
+use function explode;
+use function implode;
/**
* Definitions for a census column
@@ -39,10 +42,10 @@ class AbstractCensusColumn
* Create a column for a census
*
* @param CensusInterface $census - The census to which this column forms part.
- * @param string $abbr - The abbrievated on-screen name "BiC"
+ * @param string $abbr - The abbreviated on-screen name "BiC"
* @param string $title - The full column heading "Born in the county"
*/
- public function __construct(CensusInterface $census, $abbr, $title)
+ public function __construct(CensusInterface $census, string $abbr, string $title)
{
$this->census = $census;
$this->abbr = $abbr;
@@ -70,7 +73,7 @@ class AbstractCensusColumn
{
$family = $individual->primaryChildFamily();
- if ($family) {
+ if ($family instanceof Family) {
return $family->husband();
}
@@ -88,7 +91,7 @@ class AbstractCensusColumn
{
$family = $individual->primaryChildFamily();
- if ($family) {
+ if ($family instanceof Family) {
return $family->wife();
}
@@ -104,23 +107,13 @@ class AbstractCensusColumn
*/
public function spouseFamily(Individual $individual): ?Family
{
- // Exclude families that were created after this census date
- $families = [];
- foreach ($individual->spouseFamilies() as $family) {
- if (Date::compare($family->getMarriageDate(), $this->date()) <= 0) {
- $families[] = $family;
- }
- }
-
- if (empty($families)) {
- return null;
- }
-
- usort($families, static function (Family $x, Family $y): int {
- return Date::compare($x->getMarriageDate(), $y->getMarriageDate());
- });
-
- return end($families);
+ return $individual->spouseFamilies()
+ ->filter(function (Family $family): bool {
+ // Exclude families that were created after this census date
+ return Date::compare($family->getMarriageDate(), $this->date()) <= 0;
+ })
+ ->sort(Family::marriageDateComparator())
+ ->last();
}
/**