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

diego-ninja / granite / 16608963009

29 Jul 2025 10:37PM UTC coverage: 50.423%. First build
16608963009

Pull #5

github

web-flow
Merge 43d8840d7 into 6a6caca51
Pull Request #5: code: adds phpstan level max, pint with per and github actions

321 of 632 new or added lines in 77 files covered. (50.79%)

1132 of 2245 relevant lines covered (50.42%)

9.88 hits per line

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

0.0
/src/Validation/Attributes/EnumType.php
1
<?php
2

3
namespace Ninja\Granite\Validation\Attributes;
4

5
use Attribute;
6
use Ninja\Granite\Validation\Rules;
7

8
/**
9
 * Attribute for enum validation.
10
 */
11
#[Attribute(Attribute::TARGET_PROPERTY)]
12
class EnumType
13
{
14
    /**
15
     * @var string|null Specific enum class
16
     */
17
    private ?string $enumClass;
18

19
    /**
20
     * @var string|null Custom error message
21
     */
22
    private ?string $message;
23

24
    /**
25
     * Constructor.
26
     *
27
     * @param string|null $enumClass Optional specific enum class
28
     * @param string|null $message Custom error message
29
     */
30
    public function __construct(?string $enumClass = null, ?string $message = null)
×
31
    {
32
        $this->enumClass = $enumClass;
×
33
        $this->message = $message;
×
34
    }
35

36
    /**
37
     * Create a validation rule from this attribute.
38
     *
39
     * @return Rules\EnumType Validation rule
40
     */
41
    public function asRule(): Rules\EnumType
×
42
    {
43
        $rule = new Rules\EnumType($this->enumClass);
×
44

NEW
45
        if (null !== $this->message) {
×
46
            $rule->withMessage($this->message);
×
47
        }
48

49
        return $rule;
×
50
    }
51
}
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

© 2026 Coveralls, Inc