Skip to content

Commit 7b38d68

Browse files
committed
refactor(name-parser): make class fully static
1 parent 4cd343e commit 7b38d68

File tree

7 files changed

+15
-30
lines changed

7 files changed

+15
-30
lines changed

src/Checkers/ClassChecker.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use Peck\Config;
88
use Peck\Contracts\Checker;
99
use Peck\Contracts\Services\Spellchecker;
10-
use Peck\Services\NameParser;
10+
use Peck\Support\NameParser;
1111
use Peck\ValueObjects\Issue;
1212
use Peck\ValueObjects\Misspelling;
1313
use ReflectionClass;
@@ -27,7 +27,6 @@
2727
*/
2828
public function __construct(
2929
private Config $config,
30-
private NameParser $nameParser,
3130
private Spellchecker $spellchecker,
3231
) {
3332
//
@@ -107,7 +106,7 @@ private function getIssuesFromClass(SplFileInfo $file): array
107106
$misspelling,
108107
$file->getRealPath(),
109108
$this->getErrorLine($file, $name),
110-
), $this->spellchecker->check($this->nameParser->parse($name))),
109+
), $this->spellchecker->check(NameParser::parse($name))),
111110
];
112111
}
113112

src/Checkers/FileSystemChecker.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use Peck\Config;
88
use Peck\Contracts\Checker;
99
use Peck\Contracts\Services\Spellchecker;
10-
use Peck\Services\NameParser;
10+
use Peck\Support\NameParser;
1111
use Peck\ValueObjects\Issue;
1212
use Peck\ValueObjects\Misspelling;
1313
use Symfony\Component\Finder\Finder;
@@ -22,7 +22,6 @@
2222
*/
2323
public function __construct(
2424
private Config $config,
25-
private NameParser $nameParser,
2625
private Spellchecker $spellchecker,
2726
) {}
2827

@@ -46,7 +45,7 @@ public function check(array $parameters): array
4645

4746
foreach ($filesOrDirectories as $fileOrDirectory) {
4847
$name = $fileOrDirectory->getFilenameWithoutExtension();
49-
$name = $this->nameParser->parse($name);
48+
$name = NameParser::parse($name);
5049

5150
$issues = [
5251
...$issues,

src/Kernel.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
use Peck\Checkers\ClassChecker;
88
use Peck\Checkers\FileSystemChecker;
9-
use Peck\Services\NameParser;
109
use Peck\Services\Spellcheckers\InMemorySpellchecker;
1110

1211
final readonly class Kernel
@@ -28,13 +27,12 @@ public function __construct(
2827
public static function default(): self
2928
{
3029
$config = Config::instance();
31-
$nameParser = new NameParser;
3230
$inMemoryChecker = InMemorySpellchecker::default();
3331

3432
return new self(
3533
[
36-
new FileSystemChecker($config, $nameParser, $inMemoryChecker),
37-
new ClassChecker($config, $nameParser, $inMemoryChecker),
34+
new FileSystemChecker($config, $inMemoryChecker),
35+
new ClassChecker($config, $inMemoryChecker),
3836
],
3937
);
4038
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
declare(strict_types=1);
44

5-
namespace Peck\Services;
5+
namespace Peck\Support;
66

77
final readonly class NameParser
88
{
99
/**
1010
* Transforms the given input (method or class names) into a
1111
* human-readable format which can be used for spellchecking.
1212
*/
13-
public function parse(string $input): string
13+
public static function parse(string $input): string
1414
{
1515
// Trim leading underscores (e.g. __construct -> construct)
1616
$input = ltrim($input, '_');

tests/Unit/Checkers/ClassCheckerTest.php

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,13 @@
44

55
use Peck\Checkers\ClassChecker;
66
use Peck\Config;
7-
use Peck\Services\NameParser;
87
use Peck\Services\Spellcheckers\InMemorySpellchecker;
98
use PhpSpellcheck\Spellchecker\Aspell;
109
use Symfony\Component\Finder\SplFileInfo;
1110

1211
it('does not detect issues in the given directory', function (): void {
1312
$checker = new ClassChecker(
1413
Config::instance(),
15-
(new NameParser),
1614
InMemorySpellchecker::default(),
1715
);
1816

@@ -26,7 +24,6 @@
2624
it('detects issues in the given directory', function (): void {
2725
$checker = new ClassChecker(
2826
Config::instance(),
29-
(new NameParser),
3027
InMemorySpellchecker::default(),
3128
);
3229

@@ -101,7 +98,6 @@
10198

10299
$checker = new ClassChecker(
103100
$config,
104-
(new NameParser),
105101
new InMemorySpellchecker(
106102
$config,
107103
Aspell::create(),
@@ -153,7 +149,6 @@
153149
new Config(
154150
whitelistedDirectories: ['FolderThatShouldBeIgnored'],
155151
),
156-
(new NameParser),
157152
InMemorySpellchecker::default(),
158153
);
159154

@@ -218,7 +213,6 @@
218213
new Config(
219214
whitelistedDirectories: ['FolderThatShouldBeIgnored'],
220215
),
221-
(new NameParser),
222216
InMemorySpellchecker::default(),
223217
);
224218

tests/Unit/Checkers/FileSystemCheckerTest.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@
44

55
use Peck\Checkers\FileSystemChecker;
66
use Peck\Config;
7-
use Peck\Services\NameParser;
87
use Peck\Services\Spellcheckers\InMemorySpellchecker;
98
use PhpSpellcheck\Spellchecker\Aspell;
109

1110
it('does not detect issues in the given directory', function (): void {
1211
$checker = new FileSystemChecker(
1312
Config::instance(),
14-
(new NameParser),
1513
InMemorySpellchecker::default(),
1614
);
1715

@@ -25,7 +23,6 @@
2523
it('detects issues in the given directory', function (): void {
2624
$checker = new FileSystemChecker(
2725
Config::instance(),
28-
(new NameParser),
2926
InMemorySpellchecker::default(),
3027
);
3128

@@ -76,7 +73,6 @@
7673

7774
$checker = new FileSystemChecker(
7875
$config,
79-
(new NameParser),
8076
new InMemorySpellchecker(
8177
$config,
8278
Aspell::create(),
@@ -121,7 +117,6 @@
121117
new Config(
122118
whitelistedDirectories: ['FolderThatShouldBeIgnored'],
123119
),
124-
(new NameParser),
125120
InMemorySpellchecker::default(),
126121
);
127122

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,40 @@
22

33
declare(strict_types=1);
44

5-
use Peck\Services\NameParser;
5+
use Peck\Support\NameParser;
66

77
it('can handle pascal case', function (): void {
8-
$result = (new NameParser)->parse('MyClassName');
8+
$result = NameParser::parse('MyClassName');
99

1010
expect($result)->toBeString()->toBe('my class name');
1111
});
1212

1313
it('can handle camel case', function (): void {
14-
$result = (new NameParser)->parse('myMethodOrVariableName');
14+
$result = NameParser::parse('myMethodOrVariableName');
1515

1616
expect($result)->toBeString()->toBe('my method or variable name');
1717
});
1818

1919
it('can handle snake case', function (): void {
20-
$result = (new NameParser)->parse('snake_case');
20+
$result = NameParser::parse('snake_case');
2121

2222
expect($result)->toBeString()->toBe('snake case');
2323
});
2424

2525
it('can handle screaming snake case', function (): void {
26-
$result = (new NameParser)->parse('MY_CLASS_CONSTANT');
26+
$result = NameParser::parse('MY_CLASS_CONSTANT');
2727

2828
expect($result)->toBeString()->toBe('my class constant');
2929
});
3030

3131
it('can handle kebab case', function (): void {
32-
$result = (new NameParser)->parse('some-endpoint-name');
32+
$result = NameParser::parse('some-endpoint-name');
3333

3434
expect($result)->toBeString()->toBe('some endpoint name');
3535
});
3636

3737
it('can handle magic functions', function (): void {
38-
$result = (new NameParser)->parse('__construct');
38+
$result = NameParser::parse('__construct');
3939

4040
expect($result)->toBeString()->toBe('construct');
4141
});

0 commit comments

Comments
 (0)