GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — release/3.0.1 ( 6a2c5a )
by Shane
06:40
created

GeneratorAssembler::setCodeGenerators()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 42
Code Lines 26

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
c 3
b 0
f 0
dl 0
loc 42
rs 8.8571
cc 1
eloc 26
nc 1
nop 1
1
<?php
2
/**
3
 * MageSpec
4
 *
5
 * NOTICE OF LICENSE
6
 *
7
 * This source file is subject to the MIT License, that is bundled with this
8
 * package in the file LICENSE.
9
 * It is also available through the world-wide-web at this URL:
10
 *
11
 * http://opensource.org/licenses/MIT
12
 *
13
 * If you did not receive a copy of the license and are unable to obtain it
14
 * through the world-wide-web, please send an email
15
 * to <[email protected]> so we can send you a copy immediately.
16
 *
17
 * @category   MageTest
18
 * @package    PhpSpec_MagentoExtension
19
 *
20
 * @copyright  Copyright (c) 2012-2013 MageTest team and contributors.
21
 */
22
namespace MageTest\PhpSpec\MagentoExtension\Extension;
23
24
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\BlockGenerator;
25
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\ControllerGenerator;
26
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\ControllerSpecificationGenerator;
27
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\HelperGenerator;
28
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\ModelGenerator;
29
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\Xml\ConfigGenerator;
30
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\Xml\Element\BlockElement;
31
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\Xml\Element\ControllerElement;
32
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\Xml\Element\HelperElement;
33
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\Xml\Element\ModelElement;
34
use MageTest\PhpSpec\MagentoExtension\CodeGenerator\Generator\Xml\ModuleGenerator;
35
use PhpSpec\ServiceContainer;
36
37
class GeneratorAssembler implements Assembler
38
{
39
    /**
40
     * @param ServiceContainer $container
41
     */
42
    public function build(ServiceContainer $container)
43
    {
44
        $this->setCodeGenerators($container);
45
        $this->setXmlModuleGenerator($container);
46
        $this->setXmlConfigGenerator($container);
47
        $this->setXmlElementGenerators($container);
48
    }
49
50
    /**
51
     * @param ServiceContainer $container
52
     */
53
    private function setCodeGenerators(ServiceContainer $container)
54
    {
55
        $container->setShared('code_generator.generators.mage_model', function ($c) {
56
            return new ModelGenerator(
57
                $c->get('console.io'),
58
                $c->get('code_generator.templates'),
59
                $c->get('filesystem')
60
            );
61
        });
62
63
        $container->setShared('code_generator.generators.mage_block', function ($c) {
64
            return new BlockGenerator(
65
                $c->get('console.io'),
66
                $c->get('code_generator.templates'),
67
                $c->get('filesystem')
68
            );
69
        });
70
71
        $container->setShared('code_generator.generators.mage_helper', function ($c) {
72
            return new HelperGenerator(
73
                $c->get('console.io'),
74
                $c->get('code_generator.templates'),
75
                $c->get('filesystem')
76
            );
77
        });
78
79
        $container->setShared('code_generator.generators.mage_controller', function($c) {
0 ignored issues
show
Coding Style introduced by
Expected 1 space after FUNCTION keyword; 0 found
Loading history...
80
            return new ControllerGenerator(
81
                $c->get('console.io'),
82
                $c->get('code_generator.templates'),
83
                $c->get('filesystem')
84
            );
85
        });
86
87
        $container->setShared('code_generator.generators.controller_specification', function($c) {
0 ignored issues
show
Coding Style introduced by
Expected 1 space after FUNCTION keyword; 0 found
Loading history...
88
            return new ControllerSpecificationGenerator(
89
                $c->get('console.io'),
90
                $c->get('code_generator.templates'),
91
                $c->get('filesystem')
92
            );
93
        });
94
    }
95
96
    /**
97
     * @param ServiceContainer $container
98
     */
99
    private function setXmlModuleGenerator(ServiceContainer $container)
100
    {
101
        $container->setShared('xml_generator.generators.module', function ($c) {
102
            $suite = $c->getParam('mage_locator', array('main' => ''));
103
            if (isset($suite['src_path'])) {
104
                $etcPath = rtrim($suite['src_path'], '/') . DIRECTORY_SEPARATOR . '..'
105
                    . DIRECTORY_SEPARATOR . 'etc' . DIRECTORY_SEPARATOR . 'modules' . DIRECTORY_SEPARATOR;
106
            } else {
107
                $etcPath = 'app/etc/';
108
            }
109
            $codePool = isset($suite['code_pool']) ? $suite['code_pool'] : 'local';
110
            return new ModuleGenerator(
111
                $etcPath,
112
                $c->get('filesystem'),
113
                $codePool
114
            );
115
        });
116
    }
117
118
    /**
119
     * @param ServiceContainer $container
120
     */
121
    private function setXmlConfigGenerator(ServiceContainer $container)
122
    {
123
        $container->setShared('xml_generator.generators.config', function($c) {
0 ignored issues
show
Coding Style introduced by
Expected 1 space after FUNCTION keyword; 0 found
Loading history...
124
            $suite = $c->getParam('mage_locator', array('main' => ''));
125
            $srcPath = isset($suite['src_path']) ? rtrim($suite['src_path'], '/') . DIRECTORY_SEPARATOR : 'src';
126
            $codePool = isset($suite['code_pool']) ? $suite['code_pool'] : 'local';
127
            $generator = new ConfigGenerator(
128
                $srcPath,
129
                $c->get('filesystem'),
130
                $c->get('xml.formatter'),
131
                $codePool
132
            );
133
134
            array_map(
135
                array($generator, 'addElementGenerator'),
136
                $c->getByPrefix('xml_generator.generators.config.element')
137
            );
138
139
            return $generator;
140
        });
141
    }
142
143
    /**
144
     * @param ServiceContainer $container
145
     */
146
    private function setXmlElementGenerators(ServiceContainer $container)
147
    {
148
        $container->setShared('xml_generator.generators.config.element.block', function() {
0 ignored issues
show
Coding Style introduced by
Expected 1 space after FUNCTION keyword; 0 found
Loading history...
149
            return new BlockElement();
150
        });
151
152
        $container->setShared('xml_generator.generators.config.element.helper', function() {
0 ignored issues
show
Coding Style introduced by
Expected 1 space after FUNCTION keyword; 0 found
Loading history...
153
            return new HelperElement();
154
        });
155
156
        $container->setShared('xml_generator.generators.config.element.controller', function() {
0 ignored issues
show
Coding Style introduced by
Expected 1 space after FUNCTION keyword; 0 found
Loading history...
157
            return new ControllerElement();
158
        });
159
160
        $container->setShared('xml_generator.generators.config.element.model', function() {
0 ignored issues
show
Coding Style introduced by
Expected 1 space after FUNCTION keyword; 0 found
Loading history...
161
            return new ModelElement();
162
        });
163
    }
164
}
165