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

eliashaeussler / version-bumper / 11860111625

15 Nov 2024 04:45PM UTC coverage: 66.911% (-21.1%) from 88.054%
11860111625

Pull #12

github

web-flow
Merge f526460ea into 70d8e62f5
Pull Request #12: [FEATURE] Introduce version range detector component

9 of 173 new or added lines in 14 files covered. (5.2%)

1 existing line in 1 file now uncovered.

457 of 683 relevant lines covered (66.91%)

2.6 hits per line

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

0.0
/src/Config/VersionRangeIndicator.php
1
<?php
2

3
declare(strict_types=1);
4

5
/*
6
 * This file is part of the Composer package "eliashaeussler/version-bumper".
7
 *
8
 * Copyright (C) 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\VersionBumper\Config;
25

26
use EliasHaeussler\VersionBumper\Enum;
27

28
/**
29
 * VersionRangeIndicator.
30
 *
31
 * @author Elias Häußler <elias@haeussler.dev>
32
 * @license GPL-3.0-or-later
33
 */
34
final class VersionRangeIndicator
35
{
36
    /**
37
     * @param list<VersionRangePattern> $patterns
38
     */
NEW
39
    public function __construct(
×
40
        private readonly Enum\VersionRange $range,
41
        private readonly array $patterns,
42
        private readonly Enum\VersionRangeIndicatorStrategy $strategy = Enum\VersionRangeIndicatorStrategy::MatchAny,
NEW
43
    ) {}
×
44

NEW
45
    public function range(): Enum\VersionRange
×
46
    {
NEW
47
        return $this->range;
×
48
    }
49

50
    /**
51
     * @return list<VersionRangePattern>
52
     */
NEW
53
    public function patterns(): array
×
54
    {
NEW
55
        return $this->patterns;
×
56
    }
57

58
    /**
59
     * @return list<VersionRangePattern>
60
     */
NEW
61
    public function patternsByType(Enum\VersionRangeIndicatorType $type): array
×
62
    {
NEW
63
        $patterns = [];
×
64

NEW
65
        foreach ($this->patterns as $pattern) {
×
NEW
66
            if ($type === $pattern->type()) {
×
NEW
67
                $patterns[] = $pattern;
×
68
            }
69
        }
70

NEW
71
        return $patterns;
×
72
    }
73

NEW
74
    public function strategy(): Enum\VersionRangeIndicatorStrategy
×
75
    {
NEW
76
        return $this->strategy;
×
77
    }
78
}
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