• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

eliashaeussler / composer-update-check / 12331236834

14 Dec 2024 04:02PM UTC coverage: 20.538%. First build
12331236834

Pull #130

github

web-flow
Merge pull request #170 from eliashaeussler/renovate/major-phpstan-packages

[TASK] Update phpstan/phpstan-symfony to v2
Pull Request #130: [!!!][FEATURE] Modernize plugin

356 of 1832 new or added lines in 57 files covered. (19.43%)

382 of 1860 relevant lines covered (20.54%)

1.11 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Configuration/Options/PackageExcludePattern.php
1
<?php
2

3
declare(strict_types=1);
4

5
/*
6
 * This file is part of the Composer package "eliashaeussler/composer-update-check".
7
 *
8
 * Copyright (C) 2020-2024 Elias Häußler <elias@haeussler.dev>
9
 *
10
 * This program is free software: you can redistribute it and/or modify
11
 * it under the terms of the GNU General Public License as published by
12
 * the Free Software Foundation, either version 3 of the License, or
13
 * (at your option) any later version.
14
 *
15
 * This program is distributed in the hope that it will be useful,
16
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
 * GNU General Public License for more details.
19
 *
20
 * You should have received a copy of the GNU General Public License
21
 * along with this program. If not, see <https://www.gnu.org/licenses/>.
22
 */
23

24
namespace EliasHaeussler\ComposerUpdateCheck\Configuration\Options;
25

26
use function fnmatch;
27
use function preg_match;
28
use function str_starts_with;
29

30
/**
31
 * PackageExcludePattern.
32
 *
33
 * @author Elias Häußler <elias@haeussler.dev>
34
 * @license GPL-3.0-or-later
35
 */
36
final class PackageExcludePattern
37
{
38
    /**
39
     * @var callable(string): bool
40
     */
41
    private $matchFunction;
42

43
    /**
44
     * @param callable(string): bool $matchFunction
45
     */
NEW
46
    private function __construct(
×
47
        callable $matchFunction,
48
        private readonly string $pattern,
49
    ) {
NEW
50
        $this->matchFunction = $matchFunction;
×
51
    }
52

NEW
53
    public static function create(string $pattern): self
×
54
    {
NEW
55
        if (str_starts_with($pattern, '/') || str_starts_with($pattern, '#')) {
×
NEW
56
            return self::byRegularExpression($pattern);
×
57
        }
58

NEW
59
        return self::byName($pattern);
×
60
    }
61

NEW
62
    public static function byName(string $name): self
×
63
    {
NEW
64
        return new self(
×
NEW
65
            static fn (string $packageName) => fnmatch($name, $packageName),
×
NEW
66
            $name,
×
NEW
67
        );
×
68
    }
69

NEW
70
    public static function byRegularExpression(string $regex): self
×
71
    {
NEW
72
        return new self(
×
NEW
73
            static fn (string $packageName) => 1 === preg_match($regex, $packageName),
×
NEW
74
            $regex,
×
NEW
75
        );
×
76
    }
77

NEW
78
    public function matches(string $packageName): bool
×
79
    {
NEW
80
        return ($this->matchFunction)($packageName);
×
81
    }
82

NEW
83
    public function getPattern(): string
×
84
    {
NEW
85
        return $this->pattern;
×
86
    }
87
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc