Sesame   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
dl 0
loc 42
ccs 0
cts 5
cp 0
rs 10
c 0
b 0
f 0
wmc 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A renderArticle() 0 11 3
A __construct() 0 2 1
A crawlArticle() 0 5 1
1
<?php
2
3
namespace Sesame;
4
5
use Sesame\Crawler\ArticleCrawler;
6
use Sesame\Model\Article;
7
use Sesame\Renderer\JsonRenderer;
8
use Sesame\Renderer\XmlRenderer;
9
10
/**
11
 * Class Sesame
12
 *
13
 *
14
 *
15
 * @package Sesame
16
 */
17
class Sesame
18
{
19
20
    /**
21
     * Sesame constructor
22
     */
23
    public function __construct()
24
    {
25
    }
26
27
    /**
28
     * crawlArticle
29
     *
30
     * @param string $responseBody
31
     * @param bool $crawlVariations
32
     * @return Article
33
     */
34
    public function crawlArticle(string $responseBody, bool $crawlVariations): Article
35
    {
36
        $crawler = new ArticleCrawler();
37
38
        return $crawler->crawlArticle($responseBody, $crawlVariations);
39
    }
40
41
    /**
42
     * renderArticle
43
     *
44
     * @param Article $article
45
     * @param string $format
46
     * @return string
47
     */
48
    public function renderArticle(Article $article, string $format = 'json'): string
49
    {
50
        if ($format == 'json') {
51
            $renderer = new JsonRenderer();
52
        } elseif ($format == 'xml') {
53
            $renderer = new XmlRenderer();
54
        } else {
55
            throw new \InvalidArgumentException();
56
        }
57
58
        return $renderer->renderArticle($article);
59
    }
60
}
61