Barcode::ean13()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 1
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace DummyGenerator\Core;
6
7
use DummyGenerator\Definitions\Extension\Awareness\EanCalculatorAwareExtensionInterface;
8
use DummyGenerator\Definitions\Extension\Awareness\EanCalculatorAwareExtensionTrait;
9
use DummyGenerator\Definitions\Extension\Awareness\IsbnCalculatorAwareExtensionInterface;
10
use DummyGenerator\Definitions\Extension\Awareness\IsbnCalculatorAwareExtensionTrait;
11
use DummyGenerator\Definitions\Extension\Awareness\RandomizerAwareExtensionInterface;
12
use DummyGenerator\Definitions\Extension\Awareness\RandomizerAwareExtensionTrait;
13
use DummyGenerator\Definitions\Extension\Awareness\ReplacerAwareExtensionInterface;
14
use DummyGenerator\Definitions\Extension\Awareness\ReplacerAwareExtensionTrait;
15
use DummyGenerator\Definitions\Extension\BarcodeExtensionInterface;
16
17
class Barcode implements
18
    BarcodeExtensionInterface,
19
    RandomizerAwareExtensionInterface,
20
    EanCalculatorAwareExtensionInterface,
21
    IsbnCalculatorAwareExtensionInterface,
22
    ReplacerAwareExtensionInterface
23
{
24
    use RandomizerAwareExtensionTrait;
25
    use EanCalculatorAwareExtensionTrait;
26
    use IsbnCalculatorAwareExtensionTrait;
27
    use ReplacerAwareExtensionTrait;
28
29 3
    private function ean(int $length = 13): string
30
    {
31 3
        $code = $this->replacer->numerify(str_repeat('#', $length - 1));
32
33 3
        return sprintf('%s%s', $code, $this->eanCalculator->checksum($code));
34
    }
35
36 2
    public function ean13(): string
37
    {
38 2
        return $this->ean();
39
    }
40
41 1
    public function ean8(): string
42
    {
43 1
        return $this->ean(8);
44
    }
45
46 1
    public function isbn10(): string
47
    {
48 1
        $code = $this->replacer->numerify(str_repeat('#', 9));
49
50 1
        return sprintf('%s%s', $code, $this->isbnCalculator->checksum($code));
51
    }
52
53 1
    public function isbn13(): string
54
    {
55 1
        $code = '97' . $this->randomizer->getInt(8, 9) . $this->replacer->numerify(str_repeat('#', 9));
56
57 1
        return sprintf('%s%s', $code, $this->eanCalculator->checksum($code));
58
    }
59
}
60