Code Duplication    Length = 14-16 lines in 3 locations

src/Collection/Page/Collection.php 2 locations

@@ 37-52 (lines=16) @@
34
     *
35
     * @return self
36
     */
37
    public function sortByDate(): self
38
    {
39
        return $this->usort(function ($a, $b) {
40
            if (!isset($a['date'])) {
41
                return -1;
42
            }
43
            if (!isset($b['date'])) {
44
                return 1;
45
            }
46
            if ($a['date'] == $b['date']) {
47
                return 0;
48
            }
49
50
            return ($a['date'] > $b['date']) ? -1 : 1;
51
        });
52
    }
53
54
    /**
55
     * Sort items by title (natural sort).
@@ 71-86 (lines=16) @@
68
     *
69
     * @return self
70
     */
71
    public function sortByWeight(): self
72
    {
73
        return $this->usort(function ($a, $b) {
74
            if (!isset($a['weight'])) {
75
                return -1;
76
            }
77
            if (!isset($b['weight'])) {
78
                return 1;
79
            }
80
            if ($a['weight'] == $b['weight']) {
81
                return 0;
82
            }
83
84
            return ($a['weight'] > $b['weight']) ? -1 : 1;
85
        });
86
    }
87
}
88

src/Util.php 1 location

@@ 74-87 (lines=14) @@
71
     *
72
     * @return int
73
     */
74
    public static function sortByDate($a, $b)
75
    {
76
        if (!isset($a['date'])) {
77
            return -1;
78
        }
79
        if (!isset($b['date'])) {
80
            return 1;
81
        }
82
        if ($a['date'] == $b['date']) {
83
            return 0;
84
        }
85
86
        return ($a['date'] > $b['date']) ? -1 : 1;
87
    }
88
89
    /**
90
     * Checks if a date is valid.