Passed
Pull Request — master (#5)
by Serhii
06:33 queued 03:16
created

WebComponentsConfigBuilder::build()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 53
Code Lines 35

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 35
nc 1
nop 0
dl 0
loc 53
rs 9.36
c 0
b 0
f 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
/**
4
 * MIT License
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
namespace SprykerEco\Yves\FactFinderWebComponents\WebComponentsConfig;
9
10
use Symfony\Component\Form\DataTransformerInterface;
11
use SprykerEco\Yves\FactFinderWebComponents\FactFinderWebComponentsConfig;
12
13
class WebComponentsConfigBuilder implements WebComponentsConfigBuilderInterface
14
{
15
    /**
16
     * @var \SprykerEco\Yves\FactFinderWebComponents\FactFinderWebComponentsConfig
17
     */
18
    protected $webComponentsConfig;
19
20
    /**
21
     * @var \Symfony\Component\Form\DataTransformerInterface
22
     */
23
    protected $configToTwigConfigTransformer;
24
25
    public function __construct(
26
        FactFinderWebComponentsConfig $config,
27
        DataTransformerInterface $configToTwigConfigTransformer
28
    ) {
29
        $this->webComponentsConfig = $config;
30
        $this->configToTwigConfigTransformer = $configToTwigConfigTransformer;
31
    }
32
33
    /**
34
     * @inheritdoc
35
     *
36
     * @return array
37
     */
38
    public function build(): array
39
    {
40
        $webComponentsConfig = $this->webComponentsConfig;
41
        $twigConfigTransformer = $this->configToTwigConfigTransformer;
42
43
        return [
44
            'facetsAsn' => $twigConfigTransformer->transform(
45
                $webComponentsConfig->getAsnSliderComponentConfig()
46
            ),
47
            'breadcrumb' => $twigConfigTransformer->transform(
48
                $webComponentsConfig->getBreadcrumbComponentConfig()
49
            ),
50
            'campaign' => $twigConfigTransformer->transform(
51
                $webComponentsConfig->getCampaignWidgetComponentConfig()
52
            ),
53
            'communication' => $twigConfigTransformer->transform(
54
                $webComponentsConfig->getCommunicationComponentConfig()
55
            ),
56
            'headerNavigation' => $twigConfigTransformer->transform(
57
                $webComponentsConfig->getHeaderNavigationWidgetComponentConfig()
58
            ),
59
            'paging' => $twigConfigTransformer->transform(
60
                $webComponentsConfig->getPagingWidgetComponentConfig()
61
            ),
62
            'productsPerPage' => $twigConfigTransformer->transform(
63
                $webComponentsConfig->getProductsPerPageWidgetComponentConfig()
64
            ),
65
            'pushedProducts' => $twigConfigTransformer->transform(
66
                $webComponentsConfig->getPushedProductsWidgetComponentConfig()
67
            ),
68
            'recommendation' => $twigConfigTransformer->transform(
69
                $webComponentsConfig->getRecommendationComponentConfig()
70
            ),
71
            'recordList' => $twigConfigTransformer->transform(
72
                $webComponentsConfig->getRecordListComponentConfig()
73
            ),
74
            'suggest' => $twigConfigTransformer->transform(
75
                $webComponentsConfig->getSuggestComponentConfig()
76
            ),
77
            'checkoutTracking' => $twigConfigTransformer->transform(
78
                $webComponentsConfig->getCheckoutTrackingComponentConfig()
79
            ),
80
            'searchbox' => $twigConfigTransformer->transform(
81
                $webComponentsConfig->getSearchBoxComponentConfig()
82
            ),
83
            'similarProducts' => $twigConfigTransformer->transform(
84
                $webComponentsConfig->getSimilarProductsComponentConfig()
85
            ),
86
            'sortBox' => $twigConfigTransformer->transform(
87
                $webComponentsConfig->getSortBoxWidgetComponentConfig()
88
            ),
89
            'tagCloud' => $twigConfigTransformer->transform(
90
                $webComponentsConfig->getTagCloudWidgetComponentConfig()
91
            ),
92
        ];
93
    }
94
}
95