ConversionProcessBuilder   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 6

Test Coverage

Coverage 81.25%

Importance

Changes 4
Bugs 0 Features 1
Metric Value
wmc 4
c 4
b 0
f 1
lcom 0
cbo 6
dl 0
loc 27
ccs 13
cts 16
cp 0.8125
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A newInstance() 0 8 1
A newCommonMarkConverter() 0 15 3
1
<?php
2
namespace Bookdown\Bookdown\Process\Conversion;
3
4
use League\CommonMark\DocParser;
5
use League\CommonMark\Environment;
6
use League\CommonMark\HtmlRenderer;
7
use Psr\Log\LoggerInterface;
8
use Bookdown\Bookdown\Config\RootConfig;
9
use Bookdown\Bookdown\Fsio;
10
use Bookdown\Bookdown\Process\ProcessBuilderInterface;
11
12
class ConversionProcessBuilder implements ProcessBuilderInterface
13
{
14 17
    public function newInstance(RootConfig $config, LoggerInterface $logger, Fsio $fsio)
15
    {
16 17
        return new ConversionProcess(
17 17
            $logger,
18 17
            $fsio,
19 17
            $this->newCommonMarkConverter($config)
20 17
        );
21
    }
22
23 17
    protected function newCommonMarkConverter(RootConfig $config)
24
    {
25 17
        $environment = Environment::createCommonMarkEnvironment();
26
27 17
        foreach ($config->getCommonMarkExtensions() as $extension) {
28 9
            if (!class_exists($extension)) {
29
                throw new \RuntimeException(
30
                    sprintf('CommonMark extension class "%s" does not exists. You must use a FCQN!', $extension)
31
                );
32
            }
33 9
            $environment->addExtension(new $extension());
34 17
        }
35
36 17
        return new \League\CommonMark\Converter(new DocParser($environment), new HtmlRenderer($environment));
37
    }
38
}
39